如何在不显示图的情况下在Colab中显示matplotlib动画?

时间:2020-03-22 05:54:34

标签: 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(),则剧情和视频均不会显示。如何在不显示情节的情况下显示视频?

1 个答案:

答案 0 :(得分:0)

简短答案:请致电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())
相关问题