Python Matplotlib反向动画

Python Matplotlib反向动画,python,matplotlib,matplotlib-animation,Python,Matplotlib,Matplotlib Animation,使用animation.FuncAnimation时,是否可以在向前播放动画后以最佳方式反转动画?i、 e.相当于 FuncAnimation(..,frames=np.hstack([range(10),range(9)[::-1]])) 这会以相反的顺序重新绘制帧,当50%的数据完全相同时,会消耗图形计算和内存FuncAnimation确实有缓存机制,但它或任何其他动画是否有reverse=True?注意:我的所有数据都是预先计算的,并通过每个帧的简单索引进行检索。您是在(交互式?)mat

使用
animation.FuncAnimation
时,是否可以在向前播放动画后以最佳方式反转动画?i、 e.相当于

FuncAnimation(..,frames=np.hstack([range(10),range(9)[::-1]]))

这会以相反的顺序重新绘制帧,当50%的数据完全相同时,会消耗图形计算和内存
FuncAnimation
确实有缓存机制,但它或任何其他
动画是否有
reverse=True
?注意:我的所有数据都是预先计算的,并通过每个帧的简单索引进行检索。

您是在(交互式?)matplotlib后端中寻找解决方案,还是将此动画写入文件

后者要简单得多,因为您可以简单地使用
ffmpeg
这样的工具来还原和附加最终的gif/movie文件。例如,见

如果您需要matplotlib中的解决方案,那么我想您需要将所有所需的计算存储在单独的对象中(例如,创建一个字典,如
frames={0:{“x”:0,“y”:1,…}
,然后告诉FuncAnimation使用简单的“查找”函数进行更新,如:

def update(frame):
    xdata = frames[frame]["x"]
    ydata = frames[frame]["y"]
    ln.set_data(xdata, ydata)
    return ln,
第三个选项是将轴存储为pickle对象,即:

pickle.dump(ax, file('frame_0.pickle', 'w'))
然后尝试在FuncAnimation的更新调用中重新加载那些pickle'd帧,如:

ax = pickle.load(file('frame_0.pickle'))

如果它是预计算的,为什么不使用呢?这正是这种活页书方法设计的应用程序。