如何在IPython循环期间内联显示ndarray图像?

时间:2016-10-09 19:18:09

标签: python matplotlib jupyter-notebook

以下代码

%matplotlib inline

for i in range(0, 5):
    index = np.random.choice(len(dataset))
    print('index:', index)
    image = dataset[index, :, :]
    print('image shape:', np.shape(image))
    plt.imshow(image)

jupyter notebook的最后显示五个打印输出和一个单个图像。

是否可以在每次循环迭代中显示图像?

我能够使用带

的图像文件执行此操作
for fullname in fullnames:
  print('fullname:', fullname)
  display(Image(filename=fullname))

是否可以对ndarrays进行相同的操作?

更新

书写

for i in range(0, 5):
   ...
   plt.figure()
   plt.imshow(image)

让它变得更好,但并不完美。图像以多个显示,但都在文本之后。

应该是交错的。

1 个答案:

答案 0 :(得分:10)

尝试:

for i in range(0, 5):
   ...
   plt.figure()
   plt.imshow(image)
   plt.show()

在没有plt.show()的情况下,数字仅在单元格结束执行后呈现并显示(即退出for循环)。使用plt.show(),您可以在每次迭代后强制渲染。