Je ne sais pas comment formuler ma question plus clairement. Fondamentalement, PyPlot est-il limité à une instance/fenêtre ? Tout hack ou solution de contournement que j'essaie provoque le blocage de mon programme ou la mise en file d'attente de la deuxième fenêtre pyplot jusqu'à la fermeture de la première.
Réponses
Trop de publicités?Bien sûr, il suffit d'ouvrir une nouvelle figure :
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.figure()
plt.plot(range(10), 'ro-')
plt.figure(), plt.plot(...)
plt.show() # only do this once, at the end
Si vous l'exécutez dans l'interpréteur python par défaut, cela ne fonctionnera pas, car chaque chiffre doit entrer dans la boucle principale de l'interface graphique. Si vous voulez exécuter des choses dans un shell interactif, regardez dans IPython. Si vous l'exécutez normalement (c'est-à-dire que vous le mettez dans un fichier et appelez python filename.py
), cela fonctionnera bien, cependant.
La réponse à votre question est non. Vous pouvez avoir autant de fenêtres que vous le souhaitez. Tout d'abord, il suffit de taper
plt.figure(n) #n must be a different integer for every window
pour chaque nouveau chiffre que vous voulez. Deuxièmement, écrivez
plt.show()
une seule fois (!) à la fin de tout ce que vous voulez tracer. Voici un exemple pour deux histogrammes :
plt.figure(1)
plt.hist(dataset1)
plt.figure(2)
plt.hist(dataset2)
plt.show()