Le code suivant trace sur 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é?
python
matplotlib
plot
Stefano Borini
la source
la source
Réponses:
Vous pouvez utiliser
figure
pour créer un nouveau tracé, par exemple, ou utiliserclose
après le premier tracé.la source
plt.savefig("first.ps")
?Il y a une commande de figure claire, et elle devrait le faire pour vous:
Si vous avez plusieurs sous-graphiques dans la même figure
efface les axes actuels.
la source
Comme indiqué par David Cournapeau, utilisez figure ().
Ou sous-tracé (121) / sous-tracé (122) pour le même tracé, position différente.
la source
plt.clf()
, les chiffres sont conservés en mémoire jusqu'à ce qu'ilsEntrez simplement
plt.hold(False)
avant le premier plt.plot, et vous pouvez vous en tenir à votre code d'origine.la source
Si vous utilisez Matplotlib de manière interactive, par exemple dans une application Web, (par exemple ipython), vous recherchez peut-être
au lieu de
plt.close()
ouplt.clf()
.la source
Si aucun d'entre eux ne fonctionne, vérifiez ceci ... disons si vous avez des tableaux x et y de données le long des axes respectifs. Vérifiez ensuite dans quelle cellule (jupyter) vous avez initialisé x et y pour vider. C'est parce que, peut-être que vous ajoutez des données à x et y sans les réinitialiser. L'intrigue a donc aussi de vieilles données. Alors vérifiez ça ...
la source