matplotlib animation.save 不生成视频
Posted
技术标签:
【中文标题】matplotlib animation.save 不生成视频【英文标题】:matplolib animation.save dont't produce a video 【发布时间】:2022-01-11 03:33:52 【问题描述】:我正在尝试保存由 :
制作的动画def aff(self,frame,attr,vmin=None,vmax=None,born=True):
val = getattr(self,attr)
if born:
plt.imshow(val[frame],extent=(0,self.L,self.L,0),cmap="seismic",vmin=vmin,vmax=vmax)
else:
plt.imshow(val[frame],extent=(0,self.L,self.L,0),cmap="seismic")
plt.colorbar()
def animation(self,attr,fps=5,born=True,begin=0):
def func(frame):
plt.clf()
self.aff(frame,attr,vmin,vmax,born)
val = getattr(self,attr)
if born:
vmin = np.min(val)
vmax = np.max(val)
fig = plt.figure()
return anim.FuncAnimation(fig,func,np.arange(begin,val.shape[0]),interval=1/fps*1000)
但是当我执行时:
ani.save('animation.mp4')
或者:
ani.save('animation.gif',writer='pillow')
代码运行了很长时间,最后只显示最后一张图片。 返回一个 mp4 或 gif 视频,但在整个视频中它是相同的图像(不是第一个或最后一个图像!)。
动画,没有保存,工作。
【问题讨论】:
【参考方案1】:我有办法。
这是因为我在shell中编码:
ani=fluid.animation('omega',fps=10)
我关闭窗口并运行:
ani.save('vortex2.mp4')
但是如果我们关闭动画,“ani”对象就无效了。 我们必须这样做:
ani=fluid.animation('omega',fps=10)
ani.save('vortex2.mp4')
【讨论】:
以上是关于matplotlib animation.save 不生成视频的主要内容,如果未能解决你的问题,请参考以下文章