matplotlib摆脱了max_open_warning输出

时间:2014-12-15 02:45:44

标签: matplotlib runtime warnings

我编写了一个脚本,它调用QIIME中的函数来构建一堆图表。一切都运行良好完成,但matplotlib总是为它创建的每个绘图抛出以下反馈(超级烦人):

  

/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py:412:RuntimeWarning:已打开超过20个数字。通过pyplot接口(matplotlib.pyplot.figure)创建的数字将保留,直到明确关闭并可能消耗太多内存。 (要控制此警告,请参阅rcParam figure.max_num_figures)。     max_open_warning,RuntimeWarning)

我发现this page似乎解释了如何解决这个问题,但在我按照指示操​​作后,没有任何变化:

import matplotlib as mpl
mpl.rcParams[figure.max_open_warning'] = 0

我直接从python调用matplotlib进入文件,看看我应该调查哪个rcparams文件并手动将20更改为0.仍然没有变化。如果文档不正确,我也将其更改为1000,并且仍然收到相同的警告消息。

我知道这对于在功率有限的计算机上运行的人来说可能是一个问题,但在我的情况下这不是问题。如何让这些反馈永久消失?

2 个答案:

答案 0 :(得分:1)

我刚刚尝试过的另一种方法也有效:

import matplotlib as mpl
mpl.rc('figure', max_open_warning = 0)

答案 1 :(得分:0)

查看这篇文章:https://heitorpb.github.io/bla/2020/03/18/close-matplotlib-figures/

它基本上是在你完成 fig1 之后说 plt.close(fig1) 。这样你就不会在内存中漂浮太多无花果。