2017-10-18 149 views
1

我有两组8个图像,每个图像都是numpy数组。在IPython笔记本上绘制几个子图

因为我想在我的程序中的某个位置使用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) 

它仅显示所述第二组。

回答

0

发生什么事是你正在绘制在同一个图上的一切。因此,当绘制来自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) 
+0

我明白了!非常感谢您的回答。 – JWM