Подтвердить что ты не робот

Как сказать matplotlib, что я закончил с сюжетом?

Следующий код выводит два файла PostScript (.ps), а второй содержит обе строки.

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")

Как я могу сказать matplotlib начать заново для второго сюжета?

4b9b3361

Ответ 1

Вы можете использовать figure для создания нового графика, например, или использовать close после первого графика.

Ответ 2

Существует четкая команда, и она должна сделать это для вас:

plt.clf()

Если у вас несколько подзаголовков на одной фигуре

plt.cla()

очищает текущие оси.

Ответ 3

Как указано Дэвидом Курнерау, используйте цифру().

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")

Или подзаголовок (121)/подзаголовок (122) для одного и того же графика, в другом положении.

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")

Ответ 4

Просто введите plt.hold(False) перед первым plt.plot, и вы можете придерживаться исходного кода.

Ответ 5

Если вы используете интерактивный интерфейс Matplotlib, например, в веб-приложении (например, ipython), возможно, вы ищете

plt.show()

вместо plt.close() или plt.clf().