Wie kann ich feststellen, dass ich matplotlib mit einem Grundstück fertig bin?
-
09-09-2019 - |
Frage
Die folgenden Code Plots auf zwei Postscript (.ps-Dateien), aber der zweite enthält beide Linien.
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")
Wie kann ich matplotlib erzählen von neuem für die zweite Handlung zu beginnen?
Lösung
Sie können figure
verwenden, um einen neuen Plot zu erstellen, zum Beispiel, oder close
nach dem ersten Plot verwenden.
Andere Tipps
Es gibt eine klare Figur Befehl, und es sollte es für Sie tun:
plt.clf()
Wenn Sie mehrere Handlungsstränge in derselben Figur
plt.cla()
löscht die aktuellen Achsen.
Wie bereits erwähnt von David Cournapeau, Verwendung Figur ().
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")
oder subplot (121) / subplot (122) für die gleiche Handlung, andere Position.
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")
Just plt.hold(False)
vor dem ersten plt.plot eingeben, und Sie können zu Ihrem ursprünglichen Code halten.
Wenn Sie mit Matplotlib interaktiv, zum Beispiel in einer Web-Anwendung (z ipython) Sie vielleicht auf der Suche nach
plt.show()
statt plt.close()
oder plt.clf()
.
Wenn keiner von ihnen arbeiten dann dies überprüfen .. sagen wir, wenn Sie x und y-Arrays von Daten entlang der jeweiligen Achse. Dann sind Sie in der Zelle (jupyter) Sie haben x und y initialisiert zu leeren. Dies liegt daran, vielleicht sind Sie Daten x und y anhängen, ohne sie neu zu initialisieren. So Grundstück hat auch alte Daten. So, dass der Check ..