如何逐帧播放matplotlib动画?

时间:2017-02-21 07:05:34

标签: python animation matplotlib

我使用以下代码来停止/恢复动画(ArtistAnimation或FuncAnimation工作正常):

def keypress(event):
    global anim_running
    if event.key == ' ': # SPACE: pause and resume animation
        if anim and anim.event_source:
            anim.event_source.stop() if anim_running else anim.event_source.start()
            anim_running ^= True

fig.canvas.mpl_connect('key_press_event', keypress)

现在,我想要做的是,在动画停止的情况下,我想按一些键(例如't')并查看下一帧并使用其他键(例如'T')查看前一帧。即能够逐帧手动步进。

该程序的完整代码在这里(但没有必要回答这个问题):

https://github.com/tigran123/quantum-infodynamics/blob/master/dynamics/solplay.py

我意识到,当然可以完全忽略animate(k)的'k'参数并保持我自己的全局帧号,这可以通过键盘处理程序来控制。但是这会浪费很多CPU(即保持重新渲染相同的帧),我认为通过直接操作动画对象必须有更好的方法。

0 个答案:

没有答案