5

我对 matplotlib 有一点问题。在尝试使用 循环保存一些数字一百次时savefig(),它最终以以下错误结束:

IOError: [Errno 24] Too many open files: 'test_421.png'

我已经检查过每次figure保存后我都会关闭它,但它似乎效率不高。

这是一个代码示例来说明我是如何得到这个错误的:

def displayFig(input, display, savePath):
    fig = plt.figure(figsize=(22, 5))
    # add some subplots, axis and colorbars...
    if display:
        plt.show()
    else:
        plt.savefig(savePath, dpi = 100)
    plt.close(fig)

for i, inp in enumerate(inpArray):
    savePath = 'test_%d.png' % i
    displayFig(inp, False, savePath)

为什么会出现此错误?可能是多线程问题还是内存泄漏?

4

1 回答 1

0

尝试升级您的 matplotlib 版本。我相信从 matplotlib v1.2.0 解决了这个问题(通过这个 PR https://github.com/matplotlib/matplotlib/issues/1466/)。

于 2013-08-16T07:31:10.080 回答