2017-10-18 16 views
1

J'ai deux séries de 8 images chacune donnée comme tableaux numpy. Parce que je veux utiliser une boucle for à un certain point dans mon programme, je veux afficher chaque ensemble comme des sous-placettes matplotlib dans la même cellule, malheureusement cela ne fonctionne pas (j'ai essayé d'utiliser la fonction d'affichage de IPython.display , sans succès du tout).tracer plusieurs intrigues secondaires dans IPython cahier

Voici le code je:

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) 

Il affiche seulement le deuxième set.

Répondre

0

Ce qui se passe, c'est que vous tracez tout sur la même figure. Par conséquent, lorsque vous tracez des images à partir de set2, vous écrasez les images de set1. Vous pouvez créer une nouvelle figure en appelant plt.figure() avant vos boucles for:

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

Je vois! Merci beaucoup pour votre réponse. – JWM