如何在不显示情节的情况下在 Colab 中显示 matplotlib 动画?
How to show a matplotlib animation in Colab without also showing the plot?
在 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())
在 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())