【发布时间】:2015-08-10 04:27:55
【问题描述】:
我正在尝试用我计算出的数据制作电影。我正在使用 ffmpeg 编写器。当我在 Spyder 中启动动画时,它工作正常并结束,但是当我尝试保存它时,它只适用于前 30% 的动画。我怎样才能让它保存整个动画?
这是一段代码(很长); MM 是存储矩阵的地方(其中 1200 个)。
import matplotlib
matplotlib.use("Agg")
from mpl_toolkits.mplot3d import axes3d
import matplotlib.animation as animation
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
nx = 10
ny = 10
X=np.linspace(0, Lx, nx)
Y=np.linspace(0, Ly, ny)
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1)
plt.ion()
fig = plt.figure()
im = plt.contourf(X, Y, MM[0], np.linspace(T_ok,np.max(MM[-1]),150), cmap = cm.hot)
ax = fig.add_subplot(111, projection='3d')
plt.colorbar(im)
def anime(i):
ax.cla()
im = ax.contourf(X, Y, MM[i], np.linspace(T_ok,np.max(MM[-1]),150), cmap = cm.hot)
plt.title('%5.3f'%i)
return im,
anim = animation.FuncAnimation(fig, anime)
anim.save('anime.mp4', writer=writer)
编辑:我只是将帧设置为 10000 并且它正在工作,但我想知道为什么。应该绘制 1200 个矩阵。
【问题讨论】:
-
您能否解释一下“我将帧数设置为 1000”的意思?你在哪里做的?我遇到了这个问题。
标签: python animation matplotlib ffmpeg