matplotlib funcAnimation不会调用传递的函数

时间:2017-01-13 00:29:13

标签: python matplotlib

我试图动画机器人的链接没有成功。 FuncAnimation从不调用animate函数 - 从不执行print语句。任何帮助将不胜感激。 我的代码:

joints = np.array([robot_kinematics.getJoints(a[0]) for a in path])
# this is [5x9x3]

fig    = plt.figure()
ax     = fig.add_subplot(111, projection='3d')
colors = 'brgymcwkk'
lines  = [ax.plot([], [], [])[0] for i,c in enumerate(colors)]
pt     = ax.plot([], [], [])[0] 


def animate(i,lines,pts):
   print ('called')
   for j,line in enumerate(lines):
       line.set_data(joints[i,j,0:2])
       line.set_3d_properties(joints[i,j,2])
   pts.set_data(joints[i,:,0:2])
   pts.set_3d_properties(joints[i,:,2])

   return lines,pts

a = animation.FuncAnimation(fig, animate, 25, fargs=(lines,pt),interval=50, blit=False)    
plt.show()

1 个答案:

答案 0 :(得分:5)

必须将FuncAnimation创建的对象明确地分配给全局变量;如果将它分配给局部变量,就像我在这里所做的那样,什么都不会发生。