Jak powiedzieć matplotlib, że skończyłem z fabułą?

Poniższy kod zawiera dwa pliki PostScript (. ps) , ale drugi zawiera obie linie.

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 ' owi, żeby zaczął od nowa drugą fabułę?

Author: Peter Mortensen, 2009-04-12

6 answers

Możesz użyć figure, aby utworzyć nowy wykres, na przykład, lub użyć close po pierwszym wykresie.

 103
Author: David Cournapeau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-07 12:04:34

Istnieje polecenie clear figure, które powinno zrobić to za Ciebie:

plt.clf()

Jeśli masz kilka podprogramów na tym samym rysunku

plt.cla()

Czyści bieżące osie.

 140
Author: randlet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-19 03:05:01

Jak stwierdził David Cournapeau, użyj funkcji 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")

Lub subplot ( 121) / subplot(122) dla tej samej działki, innej pozycji.

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")
 28
Author: lmount,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-12 21:44:36

Wystarczy wpisać plt.hold(False) przed pierwszym plt.fabuła, i można trzymać się oryginalnego kodu.

 12
Author: Dirklinux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-22 10:52:09

Jeśli używasz Matplotlib interaktywnie, na przykład w aplikacji internetowej (np.]}

plt.show()

Zamiast plt.close() lub plt.clf().

 6
Author: Damo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-19 11:17:15

Jeśli żaden z nich nie działa, sprawdź to.. powiedz, Czy masz tablice x i y danych wzdłuż odpowiedniej osi. Następnie sprawdź, w której komórce (jupyter) zainicjalizowałeś X i y na puste. Dzieje się tak dlatego , że być może dodajesz dane do x i y bez ich ponownej inicjalizacji. Plot też ma stare dane. Sprawdź to..

 0
Author: Seenivasan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-10 12:45:53