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 不生成视频的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 安装

Matplotlib 基本概念

Matplotlib快速入门

matplotlib绘图入门详解

matplotlib 绘图常用函数

Matplotlib 教程