Python 自动播放matplotlib FuncAnimation jsthml元素

Python 自动播放matplotlib FuncAnimation jsthml元素,python,matplotlib,jupyter-notebook,google-colaboratory,Python,Matplotlib,Jupyter Notebook,Google Colaboratory,我正在编写将在Google Colab中显示的代码。Colab要求您在显示之前使用HTML函数。这是一个示例代码(来自): 将numpy导入为np 将matplotlib.pyplot作为plt导入 将matplotlib.animation导入为动画 从IPython.display导入HTML 图=plt.图() 定义f(x,y): 返回np.sin(x)+np.cos(y) x=np.linspace(0,2*np.pi,120) y=np.linspace(0,2*np.pi,100)。

我正在编写将在Google Colab中显示的代码。Colab要求您在显示之前使用
HTML
函数。这是一个示例代码(来自):

将numpy导入为np
将matplotlib.pyplot作为plt导入
将matplotlib.animation导入为动画
从IPython.display导入HTML
图=plt.图()
定义f(x,y):
返回np.sin(x)+np.cos(y)
x=np.linspace(0,2*np.pi,120)
y=np.linspace(0,2*np.pi,100)。重塑(-1,1)
im=plt.imshow(f(x,y),动画=True)
def updatefig(*参数):
全局x,y
x+=np.pi/15。
y+=np.pi/20。
im.set_数组(f(x,y))
返回即时消息,
HTML(animation.FuncAnimation(图,updatefig,interval=50,blit=True).to_jshtml())
这是有效的,除非你必须点击“播放”按钮才能播放。如下图所示:


是否可以生成jshtml,以便在呈现框时立即播放,就像被人单击一样?请注意,该代码需要在Google Colab中工作,根据我的经验,Google Colab比普通的Jupyter笔记本稍有限制。

您可以添加代码,在显示后单击“播放”

#这是您上面的代码
从IPython.display导入HTML、Javascript
anim=animation.FuncAnimation(图,updatefig,interval=50,blit=True)
#显示动画并单击播放(第6个按钮)
显示(HTML(anim.to_jshtml()))
Javascript('document.querySelector(“.anim buttons>button:nth child(6)”)。单击()

以下是。

您可以添加代码,以便在显示后单击“播放”

#这是您上面的代码
从IPython.display导入HTML、Javascript
anim=animation.FuncAnimation(图,updatefig,interval=50,blit=True)
#显示动画并单击播放(第6个按钮)
显示(HTML(anim.to_jshtml()))
Javascript('document.querySelector(“.anim buttons>button:nth child(6)”)。单击()

以下是。

这在一开始是有效的,但如果另一个动画已经在播放,它似乎无法使用此javascript自动播放新的单元格。也就是说,如果您暂停上一个单元格,然后使用此Javascript代码重新运行该单元格,那么它将再次工作。你知道为什么会这样吗?这应该是一个单独的问题吗?我不确定。这是我第一次尝试。不过,你不能跨单元格调用它。这在一开始是可行的,但如果另一个动画已经在播放,它似乎不会用这个javascript自动播放新的单元格。也就是说,如果您暂停上一个单元格,然后使用此Javascript代码重新运行该单元格,那么它将再次工作。你知道为什么会这样吗?这应该是一个单独的问题吗?我不确定。这是我第一次尝试。但是,您不能跨单元格调用它。