web-dev-qa-db-fra.com

Comment supprimer l'avertissement matplotlib?

Je reçois un avertissement de matplotlib chaque fois que je 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))

Quel est le meilleur moyen de le supprimer? Tous les forfaits sont à jour.

Conf: OSX avec une infusion Python 2.7.10 (défaut, 13 juillet 2015, 12:05:58), et des pandas == 0.17.0 et matplotlib == 1.5.0

12
nuin

Vous pouvez supprimer tous les avertissements:

import warnings
warnings.filterwarnings("ignore")

import pandas
16
AndreL

Vous pouvez supprimer les messages d'avertissement comme suggéré par AndreL ou résoudre ce problème spécifique et ne plus recevoir le message d'avertissement une fois pour toutes. Si vous voulez ce dernier, procédez comme suit.

Ouvrez votre fichier matplotlibrc et recherchez axes.color_cycle. Si vous recevez le message d'avertissement, cela signifie que votre fichier matplotlibrc devrait afficher quelque chose comme ceci:

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

Vous devriez remplacer cette ligne par ceci:

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

Et le message d'avertissement devrait être parti.

7
mairan

Vous pouvez supprimer l'avertissement UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. en utilisant prop_cycle à l'endroit approprié. 

Par exemple, à l'endroit où vous avez utilisé color_cycle:

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

Remplacez-le par ce qui suit:

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

Pour un meilleur aperçu, voici un exemple:

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

1

Rétrograder vers matplotlib 1.4.3 la version stable précédente.

0
Tes3awy