我正在使用matplotlib来生成带键盘输入的动画。通过按键盘,它在屏幕上移动一个圆圈。我的问题是matplotlib的init部分重新运行并重置之前的值。
def init():
patch.center = (0, 0)
print("this section reruns")
ax.add_patch(patch)
return patch,
def animate(i):
while (True):
global x, y, k
x, y = patch.center
[x,y] = getData()
patch.center = (x, y)
return patch,
def showAnimation():
anim = animation.FuncAnimation(fig, animate,
init_func=init,
frames=360,
interval=20,
blit=True)
plt.show()
return anim
try:
lis = keyboard.Listener(on_press=on_press)
lis.start() # start to listen on a separate thread
except:
print("error")
while 1:
test1 = showAnimation()
任何建议都会得到满足 谢谢
答案 0 :(得分:1)
这部分:
while 1:
test1 = showAnimation()
每次从头开始动画,执行init()函数。
不要在while 1
循环中运行动画,只需在没有循环的情况下运行它:
test1 = showAnimation()