我正在尝试在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之后,计数器重新从头开始。全球计数器不应该继续增加吗?
我想要
我在ipython笔记本(anaconda环境)中使用Python3.x。
答案 0 :(得分:2)
ani.to_html5_video()
创建一个文件。为了创建该文件,需要事先知道所有框架。因此,动画完整运行一次,然后保存这些帧并将其转换为html5视频。
如果您想实时观看动画,可以使用%matplotlib notebook
后端而不保存动画。
对于1000帧,您要在FuncAnimation
,np.arange(1,1000)
的第三个参数中自行设置该数字。删除该参数或在此处选择其他数字,例如frames =20000
。