如何使用matplotlib.animation.FuncAnimation为多个plt.figure动画?
我一直试图为两个单独的人物设置动画,以便可以在图1中显示一个停车位,在图2中显示一个移动的汽车经纪人。
但是,我所看到的只是图1中的停车位和图2中的空白图。我没有看到行驶中的汽车(或通过animation.FuncAnimation动画化的汽车)
'''
self.ax adds environment to our plt.figure(1) (self.env_fig)
self.ax2 adds car to out plt.figure(2) (self.car_fig)
'''
self.env_fig = plt.figure(1)
self.ax = self.env_fig.add_subplot(111, aspect='equal')
self.ax.set_title('Parking Environment')
self.ax.axis('off')
self.car_fig = plt.figure(2)
self.ax2 = self.car_fig.add_subplot(111, aspect='equal')
self.ax2.set_title('Car agent')
self.ax2.axis('off')
self.wall_patch = mpl_patches.PathPatch(self.wall_path, edgecolor='black', facecolor='white', lw=5)
self.car1_patch = mpl_patches.PathPatch(self.car1_path, facecolor='black', lw=0)
self.car2_patch = mpl_patches.PathPatch(self.car2_path, facecolor='black', lw=0)
self.ax.add_patch(self.wall_patch)
self.ax.add_patch(self.car1_patch)
self.ax.add_patch(self.car2_patch)
self.ax2.add_patch(self.agent_patch)
self.ax2.add_patch(self.agent_head_patch)
self.ax2.add_patch(self.agent_center_patch)
在底部,我实现了animate()函数以同时显示和动画两个图形。
def plt_show(self):
# print '...........................'
self.anim = animation.FuncAnimation(self.env_fig, self.animate_env,
init_func=None,
frames=1000,
interval=1,
# repeat= False,
blit=True)
self.anim1 = animation.FuncAnimation(self.car_fig, self.animate_car,
init_func=None,
frames=1000,
interval =1,
blit=True)
plt.gca().invert_xaxis()
plt.gca().invert_yaxis()
plt.axis('equal')
plt.axis('off')
然后在main()函数中调用plt_show()。
我认为上面的代码将根据我的定义显示两个单独的动画人物。但是,仅显示图2,而图1仅显示空白图。
图1是否有可能被图2覆盖?
还是代码中其他地方的问题?
谢谢。