首页 > 解决方案 > 保存的 .mp4 文件中前几帧的 Matplotlib 动画空白

问题描述

我正在尝试使用 matplotlib 的 FuncAnimation 框架运行一个非常慢的动画(每帧 500 毫秒)。当我这样做并将结果保存为 .mp4 文件时,当我使用 Windows 10“电影和电视”应用程序时,前几秒钟总是空白,或者在我使用“Windows Media Player”应用程序时冻结。我不喜欢这个。这是一个错误,我的误用,还是框架的一个不可避免的工件?

这是一个直接从文档中提取的最小示例——我只是将interval=500关键字参数添加到FuncAnimation,然后以标准方式保存动画:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'ro')

def init():
    ax.set_xlim(0, 2*np.pi)
    ax.set_ylim(-1, 1)
    return ln,

def update(frame):
    xdata.append(frame)
    ydata.append(np.sin(frame))
    ln.set_data(xdata, ydata)
    return ln,

ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init, interval=500, blit=True)
plt.show()

ani.save("Example.mp4", dpi=200)

标签: pythonmatplotlibmp4

解决方案


推荐阅读