2017-10-18 1 views
1

Ich habe zwei Sätze von je 8 Bildern als numpy Arrays.plot mehrere Unterplots in IPython Notebook

Da ich an einem Punkt in meinem Programm eine for-Schleife verwenden möchte, möchte ich jeden Satz als matplotlib-Teilplots in derselben Zelle anzeigen, leider funktioniert es nicht (ich habe versucht, die Anzeigefunktion von IPython.display zu verwenden) , ohne Erfolg). Hier

ist der Code, den ich verwendet:

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) 

Es zeigt nur den zweiten Satz.

Antwort

0

Was passiert ist, dass Sie alles auf der gleichen Figur planen. Wenn Sie Bilder von set2 plotten, überschreiben Sie daher die Bilder von set1. Sie können eine neue Figur erstellen, indem Sie vor Ihren for-Schleifen plt.figure() aufrufen:

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

Ich sehe! Vielen Dank für deine Antwort. – JWM