Блокнот Jupyter и matplotlib (предупреждение во время выполнения): продолжайте отображать графики после закрытия - PullRequest
0 голосов
/ 21 сентября 2018

Я хотел бы использовать matplotlib.pyplot для отображения многих изображений в моем блокноте jupyter.Однако, когда я пытаюсь отобразить более 20, появляется предупреждение времени выполнения, так как изображения сохраняются в памяти, если они не закрыты:

RuntimeWarning: открыто более 20 рисунков.Рисунки, созданные через интерфейс pyplot (matplotlib.pyplot.figure), сохраняются до тех пор, пока не будут явно закрыты, и могут занимать слишком много памяти.(Для управления этим предупреждением см. Рисунок rmParam.max_open_warning).

Я использую %matplotlib inline

Если я закрываю график plt.close(), графики не отображаются.Как я могу закрыть график и по-прежнему смотреть на график в jupyter, мне нужно смотреть на многие изображения одновременно: я использую цикл, где кадрирование и значение - это два изображения.

plt.figure()
f, axarr = plt.subplots(1,2)
plt.title('Image: ' + str(key))
plt.gray()
axarr[0].imshow(crop)
axarr[1].imshow(value)
plt.close()

1 Ответ

0 голосов
/ 21 сентября 2018

Я думаю, вы захотите использовать plt.show() в конце вашего цикла.

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

for i in range(25):
    fig, ax_arr = plt.subplots(1,2)
    ax_arr[0].imshow(np.random.randn(10,10))
    ax_arr[1].imshow(np.random.randn(10,10))
    plt.show()

Тогда нет необходимости закрывать что-либо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...