Как остановить пиплота от всплывающих цифр

Я пишу несколько графиков в 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 закомментировано, всплывающие окна исчезли.

Другие вопросы по тегам