如何创建实时动态更新的不定funcanimation帧?

我试图在python中重新创建a population variance graph

在那个例子中,一旦我们开始,该功能立即运行,我想网站设置的环境的限制.

我已设法创建类似的图形,但对于动画我卡住了.以下是我的代码.

import matplotlib.animation as animation

fig, ax = plt.subplots(1,1,figsize=(5,4))
plt.close()

frameRate = 30

global_counter = 0

def animate(i):

    ax.clear()

    global global_counter

    ax.text(0.5,0.5, 'test:{}'.format(global_counter))
    global_counter += 1


ani = animation.FuncAnimation(fig, animate, np.arange(1,1000), interval=frameRate)

plt.tight_layout()
from IPython.display import HTML
HTML(ani.to_html5_video())

输出:

如何创建实时动态更新的不定funcanimation帧?

问题是,执行时间与次数成正比,然后生成图表.因此,如果1000以上或更多,则在生成图形之前需要相当长的时间.看起来它在输出图形之前会生成所有1000帧.我需要这种方式至少20000帧.相反,它应该是实时的,并且只要网站被打开就更新,或者在没有编译时间妥协的情况下设置为上限.

接下来的问题是,在1000之后,计数器将重新开始.全球反击队不应该继续增加吗?

我想要

>程序立即启动,然后动态更新,如我引用的示例.
>程序在帧计数结束后继续增加计数器或不重置变量.如果不是matplotlib,seaborn或plotly或任何其他lib可以帮助吗?

我在ipython笔记本(anaconda环境)中使用Python 3.x.

解决方法:

ani.to_html5_video()创建一个文件.要创建此文件,需要事先知道所有帧.因此,动画完整运行一次,然后保存这些帧并转换为html5视频.

如果要实时查看动画,可以使用%matplotlib笔记本后端而不保存动画.

对于1000帧,您自己在FuncAnimation的第三个参数中设置该数字,np.arange(1,1000).删除该参数或在此处选择其他数字,例如frames = 20000.

上一篇:python – 是否有可能用seaborn画出破碎的轴图?


下一篇:python – 在seaborn图上设置剪辑