如何关闭测试数字matplotlib

时间:2018-03-20 14:42:29

标签: python testing matplotlib

我在一个模块中进行了一系列图像比较测试。当使用pytest时,我得到一个低内存警告,我假设是由于打开了多个测试图像(20+)。我该如何清洁或关闭它们?由于设置了我的代码fig.close()将无法正常工作。我附上了一个我的测试结果如下所示的例子。

@pytest.mark.mpl_image_compare(baseline_dir='baseline',
                           filename='file.png',
                           style=('style_guidline'),
                           savefig_kwargs={'bbox_inches': 'tight'},
                           tolerance=5)
def test_3(self):
    data = pd.read_csv('test.csv')
    fig = module.create_figure(
    data=data,
    kind="bar_chart",
    )
    return fig

1 个答案:

答案 0 :(得分:1)

一个万无一失的解决方案是关闭所有开放的数字:

>>> plt.close('all')

示例:

>>> import matplotlib.pyplot as plt
... 

>>> fig1, ax1 = plt.subplots()
... fig2, ax2 = plt.subplots()  # 2 separate figures
... 

>>> plt.get_fignums()
... 
[1, 2]

>>> plt.close('all')

>>> plt.get_fignums()
... 
[]

其他选项:

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.close.html