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

2024-06-15 13:09:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正试图在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'])

抱歉,如果这不是最具python风格的代码,仍在学习过程中。我使用6000帧的理由是模拟中有6000个时间样本(np.arange(0,60,0.01))。我把间隔设置和fps设置搞砸了,运气不好


Tags: 代码datatimeinitdefnp动画tar