问题描述
我正在尝试循环创建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 (将#修改为@)