2012-10-23 5 views
0

다음 코드를 사용하여 점을 반복적으로 그래프에 추가하려고합니다. 필자는 OSX를 사용하기 때문에 blit = True를 사용하지 않습니다. 원본에서 단일 점을 그려 플롯 할 수 있으며 (생성기에서 공급되는) 업데이트 기능의 출력을 볼 수 있습니다. 내 좌표가 플롯 될 좌표 배열에 추가되는 것을 볼 수 있습니다. 생성/업데이트 된 포인트를 시각화 할 때 누락 된 점은 무엇입니까?Python - Matplotlib FuncAnimation - Mac - 점을 반환하지 않음

data_gen()에 의해 호출되는 stromboli 함수는 좌표 쌍을 반환합니다. 모든 의도와 목적에 대해 임의의 x, y 일 수 있습니다.

#Visualization Imports 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 

def update(coord): 
    print coord[0], coord[1] 
    pt.set_xdata(numpy.append(pt.get_xdata(),coord[0])) 
    pt.set_ydata(numpy.append(pt.get_ydata(),coord[1])) 
    print pt.get_xdata() 
    return pt, 

def data_gen(): 
    while True: 
     yield stromboli(args.velocity) 

#Visualization 
fig = plt.figure() 
ax = plt.axes() 
pt, = ax.plot([], [],'ro') 

ani = animation.FuncAnimation(fig, update, data_gen, interval=100) 

plt.plot(0,0,'b*') 
plt.show() 

답변

1

나는 당신이 그 pt 효과 클로저 뭔가 재미 (대화 형 환경이 실행중인?)를 받고있을 의심되는 경우 def update 실행을 잡고 얻을 것입니다 이전 코드 실행에서 정의됩니다. 그런 다음 pt와의 새 버전을하지만 pt, = ax.plot([],[],'ro')update의 정의를 이동하거나 인수로 pt를 전달하려고 update

중 하나를 업데이트 점점 것이 아니다.

예 :

def update(coord,pt): 
    print coord[0], coord[1] 
    pt.set_xdata(numpy.append(pt.get_xdata(),coord[0])) 
    pt.set_ydata(numpy.append(pt.get_ydata(),coord[1])) 
    print pt.get_xdata() 
    return pt, 

.... 

ani = animation.FuncAnimation(fig, update, data_gen, fargs = (pt,),interval=100) 
관련 문제