我使用Matplotlib和MPLD3创建可以在html plages中显示的图形(使用django)。目前,我的图表是从csv文件中提取的数据动态生成的。我经常在终端上收到这条消息:
运行时警告:已打开超过20个数字。通过pyplot接口(
matplotlib.pyplot.figure
)创建的数字将保留,直到明确关闭并可能消耗太多内存。 (要控制此警告,请参阅rcParamfigure.max_num_figures
)。 max_open_warning,RuntimeWarning)
我不确定这意味着什么,但我认为这意味着我应该有一些方法来关闭未使用的图表。无论如何要做到这一点还是完全偏离基地?谢谢。
答案 0 :(得分:10)
答案 1 :(得分:3)
如果您不通过pyplot界面创建数据,数字将自动关闭(通过垃圾回收)。例如,您可以使用以下方法创建数字:
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
def new_fig():
"""Create a new matplotlib figure containing one axis"""
fig = Figure()
FigureCanvas(fig)
ax = fig.add_subplot(111)
return fig, ax
(基于this answer)