我最近使用matplotlib动画尝试了一些动画。它一直很好,我创建了一个ffmpeg编写器并将其保存为视频文件。但是,只要FuncAnimation调用的函数返回多个对象,我就会遇到问题。
以下是我的代码库的一小部分内容。当我同时返回im0和im1时,创建的视频文件只有im1,尽管plt.show命令按预期工作(显示两个视频)。如果我只返回一个im0,那么它按预期工作。如果我将alpha = 0.5返回im0和im1,IT也会按预期工作。
任何人都可以了解引擎盖下发生的事情吗?
fig, ax = plt.subplots(1)
def animate(i):
im0=ax.imshow(np.ma.masked_array(imgl[i][:,:,0], mask=get_blob(i)),cmap='cubehelix')
im1=ax.imshow(imgl[(i-100)%len(imgl)][:,:,0],cmap='cubehelix')
return [im1,im0]
ani = animation.FuncAnimation(fig, animate, frames=200,
interval=10, blit=True,repeat=False)
ani.save('ps.mp4', writer=writer)
plt.show()