Jupyter Notebook和Matplotlib(运行时警告):关闭后继续显示图

时间:2018-09-21 19:09:27

标签: python matplotlib jupyter-notebook

我想使用matplotlib.pyplot在jupyter笔记本中显示许多图像。但是,当我尝试显示20个以上时,会出现运行时警告,因为如果未关闭,图像会保存在内存中:

  

RuntimeWarning:已打开20多个数字。通过pyplot界面(matplotlib.pyplot.figure)创建的图形将保留到显式关闭,并且可能会占用过多内存。 (要控制此警告,请参阅rcParam Figure.max_open_warning)。

我正在使用%matplotlib inline

如果我关闭图plt.close(),则不会显示图。我如何才能关闭绘图并仍然在jupyter中查看该绘图,我需要同时查看许多图像:我正在使用一个循环,其中crop和value是两个图像。

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 :(得分:2)

我认为您希望在循环结束时使用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()

那么就不需要关闭任何东西了。