6 votes

Le dessin de matplotlib ne montre rien

J'utilise matplotlib de Python pour faire des contours en utilisant les fonctions contour et contourf. Tout fonctionne bien lorsque j'utilise show, mais lorsque j'essaie d'utiliser draw() dans une méthode, j'obtiens la fenêtre de matplotlib mais pas le graphique. L'appel à show() sera fait beaucoup plus tard dans le code et dans une méthode différente, et je voudrais afficher un graphique au moment où il est fait avec draw(), sans avoir à attendre jusqu'à show(), beaucoup plus tard. Qu'est-ce que je fais de mal ?

Merci.

7voto

tom10 Points 19886

Avez-vous activé le mode interactif en utilisant ion() ? Ce qui suit fonctionne pour moi sur OSX, en utilisant le backend Tk et en s'exécutant depuis la ligne de commande du shell :

import matplotlib.pyplot as plt

plt.ion()
plt.figure()
for i in range(10):
    plt.plot([i], [i], 'o')
    plt.draw()
raw_input("done >>")  

C'est-à-dire qu'à chaque boucle, vous voyez le tracé changer (c'est-à-dire qu'il est redessiné) à mesure que chaque point est ajouté. Ici, au fait, si j'appelle plutôt plt.ioff() Je ne vois pas le chiffre ou les mises à jour.

2voto

dfb Points 8807

IIRC ,Vous devriez pouvoir appeler fig.show() plusieurs fois. Vous pouvez également essayer d'utiliser ipython ( ipython -pylab ) et http://matplotlib.sourceforge.net/users/shell.html

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