报错信息
原因分析
报错代码中多次使用matplot.pyplot画图。但是由于matplotlib维护的Figure是有数量上限的(RuntimeWarning: More than 20 figures have been opened.),不断创建新的Figure实例,不及时处理的话很容易造成内存泄漏。
解决思路
所以需要对Figure实例进行及时清理
或者合理复用
,下面需要用到的代码:
plt.cla() # 清除axes,即当前 figure 中的活动的axes,但其他axes保持不变。
plt.clf() # 清除当前 figure 的所有axes,但是不关闭这个 window,所以能继续复用于其他的 plot。
plt.close() # 关闭 window,如果没有指定,则指当前 window。
思路1:合理复用
只创建一个 Figure 对象,在画下一个图之前,使用 plt.clf() 清理掉 axes,这样可以复用 Figure实例。
plt.clf()
示例: