Comment puis-je dire à matplotlib que j'en ai fini avec un complot?
Le code suivant trace deux fichiersPostScript (.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é?
6 réponses
Vous pouvez utiliser figure
pour créer une nouvelle parcelle, par exemple, ou utiliser close
après la première parcelle.
Il y a une commande clear figure, et elle devrait le faire pour vous:
plt.clf()
Si vous avez plusieurs sous-parcelles dans la même figure
plt.cla()
Efface les axes actuels.
Comme indiqué par David Cournapeau, utilisez 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")
Entrez simplement plt.hold(False)
avant le premier plt.terrain, et vous pouvez coller à votre code d'origine.
Si vous utilisez matplotlib de manière interactive, par exemple dans une application web, (par exemple ipython) vous cherchez peut-être
plt.show()
Au Lieu de plt.close()
ou plt.clf()
.
Si aucun d'entre eux ne fonctionne, vérifiez ceci.. dites Si vous avez des tableaux x et y de données le long de l'axe respectif. Ensuite, vérifiez dans quelle cellule (jupyter) vous avez initialisé x et y à vider. C'est parce que , peut-être que vous ajoutez des données à x et y sans les réinitialiser. Donc, l'intrigue a aussi de vieilles données. Vérifiez donc que..