关闭Matplotlib数字

时间:2014-06-30 22:48:09

标签: python matplotlib

我使用Matplotlib和MPLD3创建可以在html plages中显示的图形(使用django)。目前,我的图表是从csv文件中提取的数据动态生成的。我经常在终端上收到这条消息:

  

运行时警告:已打开超过20个数字。通过pyplot接口(matplotlib.pyplot.figure)创建的数字将保留,直到明确关闭并可能消耗太多内存。 (要控制此警告,请参阅rcParam figure.max_num_figures)。         max_open_warning,RuntimeWarning)

我不确定这意味着什么,但我认为这意味着我应该有一些方法来关闭未使用的图表。无论如何要做到这一点还是完全偏离基地?谢谢。

2 个答案:

答案 0 :(得分:10)

我更喜欢评论中tacaswell的答案,但必须搜索它。

完成后清理你的情节:

plt.close(fig)

plt.close('all')

答案 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