Matplotlib动画未正确保存

时间:2015-12-21 14:17:50

标签: python animation matplotlib ffmpeg

我用pyplot制作了一个轮廓场的动画,并希望将其保存为电影文件。不幸的是,当我保存它时,我得到了一个正确格式的文件,我可以用VLC打开它,但它只包含一到两帧。

这是我正在使用的代码的简化版本:

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

# Initialize figure and axes
fig = plt.figure()
ax = fig.add_subplot(111)

# Initialize mesh
x = np.r_[-5:5:100j]
X, Y = np.meshgrid(x, x)

# Computes the data and yields them
def data_generator(X, Y, dt):
    for t in np.r_[:10:dt]:
        yield t, np.tanh(Y*(2+t)) + np.sqrt(np.abs(X))

# Plots the given solution on the given axes
def plotter(data, ax, X, Y):
    ax.clear()
    t, field = data
    C = ax.contour(X, Y, field)
    ax.set_title('Time: {0:.1f}'.format(t))
    return C

# Animation object
anim = FuncAnimation(fig, plotter, frames=data_generator(X, Y, 0.1),
                     interval=100, repeat=False, fargs=(ax,X,Y))
anim.save('animation.mp4')
plt.show()

我在Arch linux上使用python-3.5.0matplotlib-1.5.0。我安装了ffmpeg-2.8.2。我尝试了不同的格式(例如avimkvmov),我也尝试明确选择ffmpegffmpeg_file作家。问题不在于我的硬盘空间不足。我还应该检查什么?

0 个答案:

没有答案