我正在模拟许多时间步骤,并且涉及很多步骤。我想动画我的结果,每n绘制一个步骤。matplotlib保存动画的每n个步骤
现在我有两个非工作主张。第一个似乎没有正确循环,第二个仍然使用未在图中更新的步骤填充视频,使文件变大且变慢。
你能帮我吗?
感谢
X, Y = np.meshgrid(256,256)
fig,ax = plt.subplots()
plot_every = 50
saved_steps = []
def make_step(s, t):
c = ...
if (s%plot_every) == 0:
print("plotting step {:.0f} , t ={:.0f} ".format(s, t*dt))
ax.clear()
ax.contourf(X, Y, c,
np.arange(0, 1.0, 0.01),
extend='both')
saved_steps.append(ax)
for s , t in enumerate(range(t_steps)):
make_step(s,t)
print("will now save anim")
def plot_ani(i):
return saved_steps[i]
anim = animation.FuncAnimation(fig, plot_ani,range(len(saved_steps)) , interval=500, blit=False)
或:
fig,ax = plt.subplots()
saved_steps = []
def make_step(s, t):
if (s%plot_every) == 0:
print("plotting step {:.0f} , t ={:.0f} ".format(s, t*dt))
ax.clear()
ax.contourf(X, Y, c,
np.arange(0, 1.0, 0.01),
extend='both')
return ax
anim = animation.FuncAnimation(fig, make_step,range(len(saved_steps)) , interval=500, blit=False)
,然后我做
anim.save('spinodal_decompo_ex.ogv', codec='libtheora')
保存matplotlib对象会产生大量不必要的开销。坚持分离原则会消除这一点。但这当然是你自己的选择。 – ImportanceOfBeingErnest