Poniższy kod drukuje do dwóch plików PostScript (.ps), ale drugi zawiera oba wiersze.
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")
Jak mogę powiedzieć matplotlib, aby zaczął od nowa dla drugiego wykresu?
python
matplotlib
plot
Stefano Borini
źródło
źródło
Odpowiedzi:
Możesz użyć
figure
na przykład do utworzenia nowego wykresu lub użyćclose
po pierwszym wydruku.źródło
plt.savefig("first.ps")
?Istnieje wyraźne polecenie dotyczące postaci i powinno to zrobić za Ciebie:
Jeśli masz wiele działek pomocniczych na tej samej figurze
czyści bieżące osie.
źródło
Jak podano od Davida Cournapeau, użyj figury ().
Lub działka (121) / działka (122) dla tego samego wykresu, w innej pozycji.
źródło
plt.clf()
, liczby są przechowywane w pamięci do momentu jawnego zamknięciaPo prostu wpisz
plt.hold(False)
przed pierwszym plt.plot i możesz trzymać się oryginalnego kodu.źródło
Jeśli używasz Matplotlib interaktywnie, na przykład w aplikacji internetowej (np. Ipython), być może szukasz
zamiast
plt.close()
lubplt.clf()
.źródło
Jeśli żaden z nich nie działa, sprawdź to ... powiedz, czy masz tablice danych xiy wzdłuż odpowiedniej osi. Następnie sprawdź, w której komórce (jupyter) zainicjowałeś x i y do opróżnienia. Dzieje się tak, ponieważ być może dołączasz dane do x i y bez ich ponownej inicjalizacji. Więc fabuła też ma stare dane. Więc sprawdź to ...
źródło