我试图在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())
输出:
问题是,执行时间与次数成正比,然后生成图表.因此,如果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.