web-dev-qa-db-fra.com

Est-il possible d'avoir plusieurs fenêtres PyPlot? Ou suis-je limité à des intrigues secondaires?

Je ne sais pas comment formuler ma question plus clairement. PyPlot est-il limité à une instance/fenêtre? Toute tentative 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.

21
wnewport

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 utilisez ceci dans l'interpréteur python par défaut, cela ne fonctionnera pas, car chaque figure doit entrer dans la boucle principale de l'interface graphique. Si vous souhaitez exécuter des tâches dans un shell interactif, examinez IPython. Si vous ne faites que l’exécuter normalement (c’est-à-dire le placer dans un fichier et appeler python filename.py), tout se passera bien.

43
Joe Kington

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

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

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

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