Краткий ответ: позвоните plt.close()
, чтобы избежать отображения статического c изображения.
В блокнотах 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())