gpt4 book ai didi

Python FuncAnimation 只节省了 30%

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:23 27 4
gpt4 key购买 nike

我正在尝试用我计算的数据制作一部电影。我正在使用 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 个矩阵需要绘制。

最佳答案

这个问题已经很老了,但以防万一有人在寻找答案时偶然发现它(就像我一样),this comment让我明白,对于自定义帧生成器,您需要手动设置 FuncAnimationsave_count 成员,以使视频保存整个动画。

也就是说,如果您想使用 FuncAnimationanim 实例遍历数组 times,您需要:

# either at instantiation
# anim = FuncAnimation(..., save_count=len(times))
# or after some time, if you need to customize it later
anim.save_count = len(times)
anim.save('anime.mp4', writer=writer)

关于Python FuncAnimation 只节省了 30%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493425/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com