sit*_*tic 2 python animation matplotlib avconv
如何在将matplotlib动画保存到文件时指定持续时间?通常它将由frame参数给出animation.FuncAnimation(),但不是在使用生成器来创建动画的帧时.例如,使用这个例子
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def simData():
t_max = 10.0
dt = 0.05
x = 0.0
t = 0.0
while t < t_max:
x = np.sin(np.pi*t)
t = t + dt
yield x, t
def simPoints(simData):
x, t = simData[0], simData[1]
time_text.set_text(time_template%(t))
line.set_data(t, x)
return line, time_text
fig = plt.figure()
ax = fig.add_subplot(111)
line, = ax.plot([], [], 'bo', ms=10)
ax.set_ylim(-1, 1)
ax.set_xlim(0, 10)
time_template = 'Time = %.1f s' # prints running simulation time
time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes)
ani = animation.FuncAnimation(fig, simPoints, simData)
#plt.show()
ani.save('animation.mp4', writer="avconv", codec="libx264")
Run Code Online (Sandbox Code Playgroud)
创建一个20秒的视频显示约.5秒的"模拟时间",生成器在显示时生成的帧的一半plt.show().
您缺少save_count关键字FuncAnimation.如果你传递一个生成器,那么你可以传递帧数来保存:
ani = animation.FuncAnimation(fig, simPoints, simData, save_count=200)
Run Code Online (Sandbox Code Playgroud)
迭代似乎一直持续到发电机耗尽或save_count达到.默认值为100,即使它在源代码之外似乎没有很清楚地记录.
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |