如何解决循环创建热图图时出现内存问题
我正在尝试循环创建60ish热图png文件。
import matplotlib.pyplot as plt
from matplotlib import font_manager
import seaborn as sns
import pandas as pd
import gcenter code here
for d in df1,df2,df3,.....df65:
dfa=d.filter(regex='volume')
cha=f'product{i}'
#Row total
dfa['V']=dfa.sum(axis=1)
#Convert to %
for i in range(0,12,1):
dfa.iloc[:,i]=dfa.iloc[:,i] / dfa.iloc[:,-1]
#Data to be ploted
flight=dfa[dfa.columns[:12]]
#Set title font
fontP=font_manager.FontProperties()
fontP.set_family('SimHei')
f,ax = plt.subplots(figsize=(16,9))
sns.heatmap(flight,robust=True,ax=ax,center=0.1,cmap="coolwarm")
plt.title(f'{cha}({product})',FontProperties=fontP)
plt.ylabel("Time")
#Export
f.savefig(f'C:/project/{cha}.png',dpi=400)
#Clean up
plt.clf()
plt.close(f)
gc.collect()
所以基本上,在This thread之后,我一起尝试了plt.clf(),plt.close(f)和gc.collect(),但是仍然出现以下错误。
File "C:\project\cnc\liquidity pattern.py",line 57,in <module>
f.savefig(f'C:/project/cnc/Figures/{cha}.png',dpi=400)
File "c:\p\lib\site-packages\matplotlib\figure.py",line 2203,in savefig
self.canvas.print_figure(fname,**kwargs)
File "c:\p\lib\site-packages\matplotlib\backend_bases.py",line 2098,in print_figure
result = print_method(
File "c:\p\lib\site-packages\matplotlib\backends\backend_agg.py",line 514,in print_png
FigureCanvasAgg.draw(self)
File "c:\p\lib\site-packages\matplotlib\backends\backend_agg.py",line 388,in draw
self.renderer = self.get_renderer(cleared=True)
File "c:\p\lib\site-packages\matplotlib\backends\backend_agg.py",line 404,in get_renderer
self.renderer = RendererAgg(w,h,self.figure.dpi)
File "c:\p\lib\site-packages\matplotlib\backends\backend_agg.py",line 92,in __init__
self._renderer = _RendererAgg(int(width),int(height),dpi)
MemoryError: In RendererAgg: Out of memory
我设法创建了65个无循环的png图形,但我仍然很想知道这里出了什么问题。任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。