How to suppress matplotlib warning?

Posted on

Question :

How to suppress matplotlib warning?

I am getting an warning from matplotlib every time I import pandas:

/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))

What is the best way to suppress it? All packages are up-to-date.

Conf: OSX with a brew Python 2.7.10 (default, Jul 13 2015, 12:05:58), and pandas==0.17.0 and matplotlib==1.5.0

Asked By: nuin

||

Answer #1:

You can suppress all warnings:

import warnings
warnings.filterwarnings("ignore")

import pandas
Answered By: Andre

Answer #2:

You can either suppress the warning messages as suggested by AndreL or you can resolve this specific issue and stop getting the warning message once and for all. If you want the latter, do the following.

Open your matplotlibrc file and search for axes.color_cycle. If you’re getting the warning message it means that your matplotlibrc file should show something like this:

axes.color_cycle : b, g, r, c, m, y, k  # color cycle for plot lines

You should replace that line by this:

axes.prop_cycle : cycler('color', ['b', 'g', 'r', 'c', 'm', 'y', 'k'])

And the warning message should be gone.

Answered By: mairan

Answer #3:

You can suppress the warning UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. by using prop_cycle at the appropriate place.

For example, in the place you had used color_cycle:

matplotlib.rcParams['axes.color_cycle'] = ['r', 'k', 'c']

Replace it with the following:

matplotlib.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"]) 

For a greater glimpse, here is an example:

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()

enter image description here

Answer #4:

If you are using the logging module, try this:
logging.getLogger(‘matplotlib’).setLevel(level=logging.CRITICAL)

Answered By: Ying Zhang

Answer #5:

Downgrade to matplotlib 1.4.3 the previous stable version.

Answered By: Tes3awy

Leave a Reply

Your email address will not be published.