我目前正试图在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设置而没有运气。