【发布时间】:2017-08-24 18:46:33
【问题描述】:
我正在使用 Python 和 matplotlib 库。
我运行了一段很长的代码,一路上创建了多个图形。
我做了很多次这样的事情:
plt.figure()
plt.plot(x, y)
plt.grid('on')
plt.close()
然后,在某些时候,我得到了错误:
More than 20 figures have been opened. Figures created through the pyplot interface (matplotlib.pyplot.figure) are retained until explicitly closed and may consume too much memory.
错误对我来说很清楚,但是:我确实调用了“plt.close()”。
现在我正在写这篇文章,我意识到也许 plt.close() 必须采用特定的限定符才能关闭什么数字?像 plt.close(1) 等。我想我可以使用 plt.close('all'),但是如果我只想关闭最近的数字呢?
【问题讨论】:
-
我相信你不需要调用 plt.figure()。您可以尝试不使用该代码行并告诉我们吗?
-
@Outis,感谢您的回复。所以我阅读了链接,但仍然不确定为什么它不起作用: plt.close() "关闭一个窗口,这将是当前窗口" ?你知道发生了什么吗?
-
你什么时候真正得到递归错误?您发布的警告似乎无关。
-
想象一下代码包裹在一个循环中,正如我在代码本身之前所说的那样:我多次调用它。
标签: python matplotlib