如何防止init在matplotlib中重新初始化

时间:2018-04-15 03:52:16

标签: python-3.x matplotlib

我正在使用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()

任何建议都会得到满足 谢谢

1 个答案:

答案 0 :(得分:1)

这部分:

while 1:
  test1 = showAnimation()

每次从头开始动画,执行init()函数。

不要在while 1循环中运行动画,只需在没有循环的情况下运行它:

test1 = showAnimation()