2013-06-26 2 views
3

2d에서 무작위 걸음을 만들고 2d 걷기를 계획하고 있습니다. 나는 산책을 할 수 있었지만 그 음모는 내가 원한 것이 아니었다. 파이썬에서 라이브를 볼 수 있습니까? 또는 모든 점에 레이블을 추가하여 어느 점이 먼저 왔는지, 어떤 점이 두 번째인지 등을 알 수 있습니까? 편집파이썬에서 2 차원 랜덤 워크 비쥬얼 라이징

import numpy as np 
import matplotlib.pyplot as plt 
import random 
def randomWalkb(length): 
    steps = [] 
    x,y = 0,0 
    walkx,walky = [x],[y] 
    for i in range(length): 

     new = random.randint(1,4) 
     if new == 1: 
      x += 1 
     elif new == 2: 
      y += 1 
     elif new ==3 : 
      x += -1 
     else : 
      y += -1 
     walkx.append(x) 
     walky.append(y) 
    return [walkx,walky] 

walk = randomWalkb(25) 
print walk 
plt.plot(walk[0],walk[1],'b+', label= 'Random walk') 
plt.axis([-10,10,-10,10]) 
plt.show() 

나는, 내 자신의 코드를 잘못 복사가 설치 올바른 패키지가 있다면 지금은 컴파일됩니다.

답변

6

내장 된 turtle 모듈을 사용하여 인식 가능한 속도로 경로를 그릴 수 있습니다.

import turtle 

turtle.speed('slowest') 

walk = randomWalkb(25) 

for x, y in zip(*walk): 
    #multiply by 10, since 1 pixel differences are hard to see 
    turtle.goto(x*10,y*10) 

turtle.exitonclick() 

샘플 결과 :

enter image description here

1

는 애니메이션 함수가 거리의 한 공정을 수행하고, 적절하게는 X, Y 데이터를 설정한다이 경우 http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/

에서 애니메이션 가이드 참조. 애니메이션을 저장하지 않거나 코덱이 설치되어 있지 않은 경우 anim.save 호출을 무시하십시오.

2

나는 즉 플롯을 시도, 색상을 사용하여 시간 정보를 시각화 할

plt.plot(walk[0],walk[1],label= 'Random walk') 
plt.scatter(walk[0],walk[1],s=50,c=range(26))