Come faccio a dire matplotlib che mi sono fatto con una trama?
-
09-09-2019 - |
Domanda
I seguenti trame codice a due file PostScript (.ps ), ma la seconda contiene entrambe le linee.
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")
Come faccio a sapere matplotlib di ripartire per la seconda trama?
Soluzione
È possibile utilizzare figure
per creare una nuova trama, ad esempio, o utilizzare close
dopo la prima trama.
Altri suggerimenti
C'è un comando chiara figura, e dovrebbe farlo per voi:
plt.clf()
Se si dispone di più sottotrame nella stessa figura
plt.cla()
cancella gli assi attuali.
Come affermato da David Cournapeau, uso figura ().
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")
O subplot (121) / subplot (122) per la stessa trama, posizione diversa.
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")
Basta inserire plt.hold(False)
prima della prima plt.plot, e si può attaccare al vostro codice originale.
Se stai usando Matplotlib in modo interattivo, ad esempio in un'applicazione web, (per esempio ipython) si forse alla ricerca di
plt.show()
al posto di plt.close()
o plt.clf()
.
Se nessuno di loro stanno lavorando quindi controllare questo .. diciamo se si dispone di x e y array di dati lungo rispettivo asse. Allora in quale cella (jupyter) è stato inizializzato xey svuotare. Questo perché, forse si sta allegando i dati alla xey senza di loro re-inizializzazione. Così trama ha troppo vecchi dati. Quindi verificare che ..