如何抑制 matplotlib 警告?
How to suppress matplotlib warning?
我每次 import pandas
:
都会收到来自 matplotlib
的警告
/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.
warnings.warn(self.msg_depr % (key, alt_key))
抑制它的最佳方法是什么?所有软件包都是最新的。
Conf:OSX 与 brew Python 2.7.10(默认,2015 年 7 月 13 日,12:05:58)和 pandas== 0.17.0 和 matplotlib==1.5.0
您可以禁止显示所有警告:
import warnings
warnings.filterwarnings("ignore")
import pandas
您可以按照 AndreL 的建议抑制警告消息,也可以解决此特定问题并一劳永逸地停止接收警告消息。如果你想要后者,请执行以下操作。
打开 matplotlibrc
文件并搜索 axes.color_cycle
。如果您收到警告消息,则表示您的 matplotlibrc
文件应显示如下内容:
axes.color_cycle : b, g, r, c, m, y, k # color cycle for plot lines
你应该用这个替换那行:
axes.prop_cycle : cycler('color', ['b', 'g', 'r', 'c', 'm', 'y', 'k'])
并且警告消息应该消失了。
您可以在适当的地方使用 prop_cycle 来抑制警告 UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.
。
比如在你用过的地方color_cycle
:
matplotlib.rcParams['axes.color_cycle'] = ['r', 'k', 'c']
替换为:
matplotlib.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"])
为了更深入地了解,这里有一个例子:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"])
x = np.linspace(0, 20, 100)
fig, axes = plt.subplots(nrows=2)
for i in range(10):
axes[0].plot(x, i * (x - 10)**2)
for i in range(10):
axes[1].plot(x, i * np.cos(x))
plt.show()
如果您使用的是日志模块,试试这个:
logging.getLogger('matplotlib').setLevel(level=logging.CRITICAL)
除了隐藏所有内容,您还可以隐藏特定 警告。
例如,如果我们只想隐藏 matplotlib
个警告:
warnings.filterwarnings( "ignore", module = "matplotlib\..*" )
过滤器可以自定义到确切的消息和警告来源文件的行号,假设它只是一个让您烦恼的警告而不是 matplotlib
整个警告。有关详细信息,请参阅 https://docs.python.org/3/library/warnings.html。
我每次 import pandas
:
matplotlib
的警告
/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.
warnings.warn(self.msg_depr % (key, alt_key))
抑制它的最佳方法是什么?所有软件包都是最新的。
Conf:OSX 与 brew Python 2.7.10(默认,2015 年 7 月 13 日,12:05:58)和 pandas== 0.17.0 和 matplotlib==1.5.0
您可以禁止显示所有警告:
import warnings
warnings.filterwarnings("ignore")
import pandas
您可以按照 AndreL 的建议抑制警告消息,也可以解决此特定问题并一劳永逸地停止接收警告消息。如果你想要后者,请执行以下操作。
打开 matplotlibrc
文件并搜索 axes.color_cycle
。如果您收到警告消息,则表示您的 matplotlibrc
文件应显示如下内容:
axes.color_cycle : b, g, r, c, m, y, k # color cycle for plot lines
你应该用这个替换那行:
axes.prop_cycle : cycler('color', ['b', 'g', 'r', 'c', 'm', 'y', 'k'])
并且警告消息应该消失了。
您可以在适当的地方使用 prop_cycle 来抑制警告 UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.
。
比如在你用过的地方color_cycle
:
matplotlib.rcParams['axes.color_cycle'] = ['r', 'k', 'c']
替换为:
matplotlib.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"])
为了更深入地了解,这里有一个例子:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"])
x = np.linspace(0, 20, 100)
fig, axes = plt.subplots(nrows=2)
for i in range(10):
axes[0].plot(x, i * (x - 10)**2)
for i in range(10):
axes[1].plot(x, i * np.cos(x))
plt.show()
如果您使用的是日志模块,试试这个: logging.getLogger('matplotlib').setLevel(level=logging.CRITICAL)
除了隐藏所有内容,您还可以隐藏特定 警告。
例如,如果我们只想隐藏 matplotlib
个警告:
warnings.filterwarnings( "ignore", module = "matplotlib\..*" )
过滤器可以自定义到确切的消息和警告来源文件的行号,假设它只是一个让您烦恼的警告而不是 matplotlib
整个警告。有关详细信息,请参阅 https://docs.python.org/3/library/warnings.html。