python - 如何在 Colab 中显示 matplotlib 动画而不显示绘图?

标签 python matplotlib ipython google-colaboratory

在 Google Colab 笔记本中,我正在构建 matplotlib 动画并将其显示为 HTML5 视频。我的脚本的最后几行是:

# ...
anim = animation.ArtistAnimation(plt.gcf(), frames,
                                 interval=250, blit=True, repeat=False)
HTML(anim.to_html5_video())

视频看起来不错,但随后我得到了视频下方显示的另一幅情节图像(显示与视频最后一帧相同的内容)。如果我最后调用 plt.close() ,则绘图和视频都不会显示。如何在不显示剧情的情况下显示视频?

最佳答案

简短回答:调用 plt.close() 以避免显示静态图像。

Jupyter 笔记本(包括 Colab)将自动显示在单元格中创建的任何 matplotlib 图像,无论单元格中是否有显式打印或显示语句。您可以通过运行看到这一点

plt.plot([1, 2, 3])
print('done')

单元格输出将包含隐式显示的图表和显式显示的文本。

您可以通过在单元格结束之前关闭图表来防止这种隐式显示:

plt.plot([1, 2, 3])
plt.close()
print('done')

在您的情况下,您想要显示根据图表构建的 HTML 动画,而不是图表本身。它看起来像这样:

anim = animation.ArtistAnimation(plt.gcf(), frames,
                                 interval=250, blit=True, repeat=False)
plt.close()
HTML(anim.to_html5_video())

关于python - 如何在 Colab 中显示 matplotlib 动画而不显示绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60796348/

相关文章:

php - 定制 CMS 还是第三方?

python - Microsoft Teams - 机器人主程序中的无限循环

python - 在 matplotlib.pyplot 图中使用传递的轴对象?

python - IPython Notebook 中的 In [*] 是什么意思以及如何关闭它?

crash - 使用os.dup2()后,iPython将不再启动

python - Selenium Python - 缺少元素的定位器错误,但我希望它们失败

python - 如何在python中运行 "for"循环以获得有限结果

tensorflow - 无法在 Jupyter Notebook 中多次运行 Tensorflow 代码

python - 尝试使用 matplotlib Latex 保存 postscript 时出错

Python:绘制具有重复条目的字符串数组与不带 for 循环的 float