You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将matplotlib.pause生成的动画保存为视频文件?

保存matplotlib动画为MP4文件

要把你用plt.pause实现的动画保存成MP4,得改用matplotlib的动画API来构建动画——原来的plt.pause只是临时刷新显示,没有记录帧数据用于导出。下面是具体实现方法:

准备工作

确保安装了FFmpeg,matplotlib需要它来编码视频。你可以通过包管理器安装(比如conda install ffmpeg),或者下载FFmpeg安装包并添加到系统环境变量中。

重写动画代码

用FuncAnimation构建可导出的动画,示例代码如下:

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation, FFMpegWriter

# 创建画布和坐标轴,提前设置范围避免画面跳动
fig, ax = plt.subplots()
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 10)

# 初始化散点图元素
scatter = ax.scatter(0, 0)

# 定义每帧的更新逻辑
def update(frame):
    # 更新散点的位置
    scatter.set_offsets([[0, frame]])
    return scatter,

# 生成动画:frames指定帧序列,interval对应原代码的0.01秒(10毫秒)
ani = FuncAnimation(fig, update, frames=range(10), interval=10, blit=True)

# 配置视频写入器并保存
writer = FFMpegWriter(fps=100, metadata={'title': 'My Scatter Animation'}, bitrate=1800)
ani.save('scatter_animation.mp4', writer=writer)

# 可选:显示动画
plt.show()

关键代码说明

  • FuncAnimation:自动管理帧的生成与记录,frames参数对应原循环的遍历序列,interval控制帧间隔(单位毫秒)。
  • update函数:每帧触发一次,负责更新绘图元素的状态,这里用set_offsets修改散点位置。
  • FFMpegWriter:指定视频编码参数,fps设为100对应原代码每帧0.01秒的刷新频率,bitrate影响视频清晰度。

运行代码后,当前目录会生成scatter_animation.mp4文件。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:45:36