2017-10-18 9 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