如何在Google CoLab中动态(循环)显示图像?

2022-03-15 00:00:00 python matplotlib google-colaboratory

问题描述

我一直在尝试使用pylot/matplotlib来显示循环中更改的图像,但我一直无法使任何内容正常工作。我基本上无法更新正在显示的图像。以下是复制该问题的代码:

f = plt.figure(1)
ax = plt.gca()
show_obj= ax.imshow(np.random.randn(28,28))
for i in range(10):
  print(i)
  # None of these 3 options work
  if True:
    # the image does not update
    show_obj.set_data(np.random.randn(28,28))
    f.canvas.draw()
  if False:
    # image does not update
    ax.clear()
    ax.imshow(np.random.rand(28,28))
    pass
  if False:
    # starts drawing new axes
    f = plt.figure(1)
    ax = plt.gca()
    ax.imshow(np.random.rand(28,28))
  plt.show()

解决方案

我测试此代码,它可以正常工作。

from IPython.display import clear_output
import matplotlib.pyplot as plt
from numpy.random import randn
from time import sleep

for i in range(5):
  clear_output()
  plt.imshow(randn(28, 28))
  plt.show()
  sleep(1)

相关文章