52 votes

Est-il possible d'avoir plusieurs fenêtres PyPlot ? Ou suis-je limité aux sous-parcelles ?

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.

94voto

Joe Kington Points 68089

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.

12voto

j35t3r Points 516

Utilisez plt.figure() et utilisez un certain nombre pour que la fenêtre soit fixe :

 plt.figure(200)
plt.plot(x)
plt.show()

et pour un autre tracé, utilisez un numéro différent :

 plt.figure(300)
plt.plot(y)
plt.show()

5voto

MiLe Points 11

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()

3voto

Mario Zambrano Points 11

Vous pouvez le faire avec les propriétés pyplot.show

Exemple:

 plt.show(block=False)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X