Как остановить пиплота от всплывающих цифр
Я пишу несколько графиков в PDF с циклом, как показано ниже. Это работает, но есть две очень раздражающие проблемы,
1) Когда цикл запускается, я вижу много всплывающих окон ("Рисунок 1"). Я думаю, что команда plt.close(fig)
не работает как задумано. Это действительно раздражает, потому что я могу делать что-то еще, когда он запускается, и эти всплывающие окна блокируют мой взгляд на другие задачи.
2) Вероятно, связано с 1), использование памяти резко возрастает. В моем реальном сценарии, построение примерно 50 страниц графиков пожирает> 32 ГБ ОЗУ. Как это могло быть?!
with PdfPages('Manyplots.pdf') as pdf:
for j in xrange(100):
fig = plt.figure(1, figsize=(5,5))
for fr in xrange(9):
pp = fig.add_subplot(3,3,fr+1)
pp.imshow(x, cmap=plt.cm.gray)
pdf.savefig()
plt.close(fig)
Мои вопросы
1) есть ли способ закрыть фигуру после того, как сюжет готов?
2) еще лучше, как подавить пустое всплывающее окно с рисунком, поскольку оно действительно должно выполнять запись во внешний файл в фоновом режиме,
3) Есть ли лучший способ сохранить серию графиков на нескольких страницах PDF?
1 ответ
Нашел причину проблемы. Мой основной сценарий включает в себя import
чьего-либо служебного скрипта, который импортирует pyplot и имеет дополнительную строку,
import matplotlib.pyplot as plt
plt.ion()
когда plt.ion
закомментировано, всплывающие окна исчезли.