Python 如何创建实时动态更新的动画帧?

Python 如何创建实时动态更新的动画帧?,python,python-3.x,matplotlib,animation,frame,Python,Python 3.x,Matplotlib,Animation,Frame,我正在尝试用python重新创建 在那个例子中,我们一开始,函数就立即运行到我猜网站设置的环境限制 我已经成功地创建了类似的图形,但对于动画,我被卡住了。下面是我的代码 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()

我正在尝试用python重新创建

在那个例子中,我们一开始,函数就立即运行到我猜网站设置的环境限制

我已经成功地创建了类似的图形,但对于动画,我被卡住了。下面是我的代码

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
    或任何其他库可以在这里提供帮助 我在
    ipythonNotebook
    (anaconda环境)中使用Python3.x

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

    如果要观看动画直播,可以使用
    %matplotlib笔记本
    后端而不保存动画


    对于1000帧,您将自己在第三个参数中将该数字设置为
    FuncAnimation
    np.arange(11000)
    。要么删除该参数,要么在此处选择一个不同的数字,例如,
    frames=20000

    太好了,这似乎可以解决它,即使我将frame limit设置为100,全局计数器也会增加。左上角有一个关闭动画的开关,但重新启动的唯一方法是再次运行代码。我将导出为html文件,因为读者将无法运行代码(但可以与图形交互),我们如何避免这种情况?如果导出html,则没有实时视图选项;在这种情况下,您可以回到以前导出html5视频的解决方案。不可能生成等效的js脚本来重做特定输出ipython单元的实时视图更新?我不知道。这在概念上是困难的:您的代码是用python编写的。为了在没有python代码的情况下生成相同的输出,您需要将所有代码翻译成javascript并让它运行。没有Python2JS转换器。然而,有些项目试图从JavaScript中运行python;我知道。