首页 > 解决方案 > repeat_delay 参数对 Jupyter 中的动画情节没有影响

问题描述

我正在 Jupyter 笔记本中制作一个简单的动画散点图,我希望它重复,但在循环之前有延迟。这应该是用repeat_delay参数设置的,但是当我在 Jupyter notebook 中使用它HTML(ani.to_html5_video())来显示动画时它没有效果。

这是一个每 200 毫秒重新定位 20 个点的简单示例,但尝试在重复动画之前添加 2 秒延迟:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
from IPython.display import HTML

frame_interval = 200
vid_repeat = True
repeat_delay = 2000  # set long so it would be obvious

def update_xy(i, scat):
    scat.set_offsets(np.random.random((20,2)))
    return scat,

fig = plt.figure()
init_data = np.random.random((20,3))
scat = plt.scatter(init_data[:,0], init_data[:,1], c=init_data[:,2], s=50, cmap = "hot")

ani = animation.FuncAnimation(fig, 
                              update_xy, 
                              frames=numframes,
                              interval = frame_interval,
                              repeat = vid_repeat,
                              repeat_delay = repeat_delay,
                              fargs=(scat,))
plt.close(ani._fig)
HTML(ani.to_html5_video())

frame_interval最后,无论我设置什么值,它都会循环播放repeat_delay。保存动画ani.save('foo.mp4')或尝试使用 HTML(ani.to_jshtml()).

相关问题
iPython notebook
中的动画 如何为散点图设置动画?

标签: pythonmatplotlibjupyter-notebookmatplotlib-animation

解决方案


推荐阅读