180 votes

Comment puis-je dire à matplotlib que j'ai terminé un tracé ?

Le code suivant trace à deux PostScript (.ps), mais le second contient les deux lignes.

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab

plt.subplot(111)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")

plt.subplot(111)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")

Comment puis-je dire à matplotlib de recommencer à zéro pour le deuxième tracé ?

4 votes

Pour l'anecdote, il n'est pas nécessaire d'utiliser les sous-intrigues lorsque vous n'avez qu'une seule intrigue par figure.

2voto

Seenivasan Points 815

Si aucun d'entre eux ne fonctionne, alors vérifiez ceci. Disons que vous avez des tableaux de données x et y le long des axes respectifs. Vérifiez alors dans quelle cellule (jupyter) vous avez initialisé x et y à vide. C'est parce que, peut-être, vous ajoutez des données à x et y sans les réinitialiser. Donc le tracé a aussi d'anciennes données. Donc vérifiez que

1voto

jvriesem Points 357

A partir du code source de matplotlib.pyplot en vertu de la figure() documentation :

If you are creating many figures, make sure you explicitly call
    `.pyplot.close` on the figures you are not using, because this will
    enable pyplot to properly clean up the memory.

Donc, comme d'autres l'ont dit, utilisez plt.close() sur chaque figure lorsque vous avez terminé, et vous serez prêt à partir !

REMARQUE : si vous créez la figure via f = plt.figure() vous pouvez le fermer via plt.close( f ) au lieu de f.close() .

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