编辑:如果我显式改变后端matplotlib从’Qt4Agg’到’Agg’,那么我可以运行我的代码没有错误。我认为这是一个在后端的错误?
我编写一些代码来自动处理相当大量的数据。该代码首先解析我的数据文件并存储所有相关位。然后,我有不同的功能,用于生成每个图表我需要(总共有大约25)。但是,我继续遇到某种内存错误,我认为这是因为Matplotlib / PyPlot没有正确释放内存。
每个绘图函数以pyplot.close(fig)命令结束,由于我只想保存图形,不立即查看它们,因此不包括pyplot.show()。
如果我在解释器中单独运行绘图函数,那么我没有遇到任何问题。但是,如果我做一个单独的函数,它依次调用每个绘制函数,然后我遇到一个“MemoryError:无法为路径分配内存”。
这是一个典型的绘图功能在我的代码看起来像:
def TypicalPlot(self, title=None, comment=False, save=False, show=True):
if title is None:
title = self.dat.title
fig = plt.figure()
host = SubplotHost(fig, 111)
fig.add_subplot(host)
par = host.twinx()
host.set_xlabel("Time (hrs)")
host.set_ylabel("Power (W)")
par.set_ylabel("Temperature (C)")