在IPython笔记本中绘制几个子图

时间:2017-10-18 11:27:41

标签: python matplotlib ipython ipython-notebook

我有两组8张图像,每张图像都是numpy数组。

因为我想在我的程序中的某个点使用for循环,我想在同一个单元格中显示每个集合作为matplotlib子图,不幸的是它不起作用(我试图使用来自IPython.display的显示函数,根本没有成功。)

以下是我使用的代码:

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

for i, img in enumerate(set1):
    plt.subplot(2, 4, i+1)
    plt.axis('off')
    plt.imshow(img)

for i, img in enumerate(set2):
    plt.subplot(2, 4, i+1)
    plt.axis('off')
    plt.imshow(img)

它只显示第二组。

1 个答案:

答案 0 :(得分:1)

正在发生的事情是你正在绘制同一个数字上的所有内容。因此,在绘制来自set2的图像时,您将覆盖set1的图像。你可以在for循环之前调用plt.figure()来创建一个新的数字:

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

plt.figure()
for i, img in enumerate(set1):
    plt.subplot(2, 4, i+1)
    plt.axis('off')
    plt.imshow(img)

plt.figure()
for i, img in enumerate(set2):
    plt.subplot(2, 4, i+1)
    plt.axis('off')
    plt.imshow(img)
相关问题