禁止警告:matplotlib.legend:没有发现带有标签的句柄放在图例中

Posted

技术标签:

【中文标题】禁止警告:matplotlib.legend:没有发现带有标签的句柄放在图例中【英文标题】:Suppress WARNING:matplotlib.legend:No handles with labels found to put in legend 【发布时间】:2020-03-20 07:08:03 【问题描述】:

很抱歉,如果以前有人问过这个问题,但我找到的所有答案都对我不起作用。我正在寻找一种方法来抑制此警告。上下文是我编写了一个创建大量绘图的函数,有时我忍不住为未标记的曲线创建图例。

这是我的示例代码,包括我尝试过的内容

import matplotlib.pyplot as plt

import warnings
warnings.filterwarnings('ignore') # doesn't work

import logging
logging.basicConfig(level=logging.CRITICAL) # doesn't work

plt.plot(np.random.rand(10))
plt.legend()
plt.show()

警告仍然像这样出现

WARNING:matplotlib.legend:No handles with labels found to put in legend.

【问题讨论】:

logging 选项对我来说效果很好,我得到的图没有图例也没有警告。 Python 3.8,matplotlib 3.1.2。同样在 python 2.7 中。 谢谢我挖得更深一点,在另一个堆栈溢出问题 logging.getLogger().setLevel(logging.CRITICAL) 中找到了解决方案,可能与使用 Jupyter Notebook 有关 【参考方案1】:

我在这个堆栈溢出问题中找到了解决方案。

Disable INFO logging messages in Ipython Notebook

也许它与 Jupyter Notebook 有关?

import logging
logging.getLogger().setLevel(logging.CRITICAL)

【讨论】:

以上是关于禁止警告:matplotlib.legend:没有发现带有标签的句柄放在图例中的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib Legend 中的自定义艺术家

matplotlib-- legend(图例说明解释),annotate(标注),text(标注)

如何禁止Microsoft Edge自定义协议对话框警告?

禁止显示状态 警告 C6031 返回值被忽略: “scanf“.

CorelDRAW x8提示盗版警告窗口怎么去掉?

禁止对 Visual Studio 中的所有项目发出警告