如何减少Matplotlib输出的视频长度

时间:2015-05-27 21:13:14

标签: python matplotlib

我目前正试图在60秒内制作一个系统响应图。我已经成功动画了响应,但动画是20分钟而不是我想要的60秒。以下块是相关代码:

def animate(i):
    global x, temp_resp_tar, temp_time, temp_resp_tro, temp_resp_pay

    temp_resp_pay = np.append(temp_resp_pay, payload_horiz[i])

    temp_resp_tro = np.append(temp_resp_tro, resp[i,0])

    temp_resp_tar = np.append(temp_resp_tar, resp[i,2])

    temp_time = np.append(temp_time, x[i])

    tar_resp.set_data(temp_time, temp_resp_tar)
    tro_resp.set_data(temp_time, temp_resp_tro)
    pay_resp.set_data(temp_time, temp_resp_pay)



return tar_resp, tro_resp, pay_resp

def init():
    global x
    tar_resp.set_data(x, resp[:,2])
    tro_resp.set_data(x, resp[:,0])
    pay_resp.set_data(x, payload_horiz[:])

return tar_resp, tro_resp, pay_resp


ani = animation.FuncAnimation(fig, animate, init_func=init, interval=1, frames=6000, blit=False)



FFwriter = animation.FFMpegWriter()
ani.save('response.mp4', writer = FFwriter, fps = 60, extra_args = ['-vodec', 'libx264'])

很抱歉,如果这不是最pythonic代码,仍在学习过程中。我使用6000帧的原因是模拟中有6000个时间样本(np.arange(0,60,0.01))。我已经搞乱了间隔设置和fps设置而没有运气。

0 个答案:

没有答案