web-dev-qa-db-fra.com

Comment dire à matplotlib que j'en ai fini avec un complot?

Le code suivant est tracé dans deux fichiers 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 pour le deuxième tracé?

130
Stefano Borini

Vous pouvez utiliser figure pour créer un nouveau tracé, par exemple, ou utiliser close après le premier tracé.

106
David Cournapeau

Il y a un ordre de figure clair, et il devrait le faire pour vous:

plt.clf()

Si vous avez plusieurs intrigues secondaires dans la même figure

plt.cla()

efface les axes actuels.

144
randlet

Comme l'a dit David Cournapeau, utilisez la figure ().

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

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


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

Ou sous-parcelle (121)/sous-parcelle (122) pour la même parcelle, position différente.

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

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

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

Entrez simplement plt.hold(False) avant le premier plt.plot et vous pourrez vous en tenir à votre code original.

13
Dirklinux

Si vous utilisez Matplotlib de manière interactive, par exemple dans une application Web (par exemple, ipython), vous recherchez peut-être

plt.show()

au lieu de plt.close() ou plt.clf().

6
Damo

Si aucun d’entre eux ne fonctionne, cochez cette case. Dites si vous avez des tableaux de données x et y sur l’axe respectif. Puis vérifiez dans quelle cellule (jupyter) vous avez initialisé x et y pour vider. En effet, vous ajoutez peut-être des données à x et y sans les réinitialiser. Donc, l'intrigue a aussi des données anciennes. Alors vérifiez que ..

0
Seenivasan