web-dev-qa-db-de.com

Wie kann man die Matplotlib-Warnung unterdrücken?

Ich erhalte jedes Mal eine Warnung von matplotlib, wenn ich 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))

Was ist der beste Weg, um es zu unterdrücken? Alle Pakete sind aktuell.

Conf: OSX mit einem Brew Python 2.7.10 (Standard, 13. Juli 2015, 12:05:58) und Pandas == 0.17.0 und Matplotlib == 1.5.0

12
nuin

Sie können alle Warnungen unterdrücken:

import warnings
warnings.filterwarnings("ignore")

import pandas
16
AndreL

Sie können entweder die von AndreL vorgeschlagenen Warnmeldungen unterdrücken, oder Sie können dieses spezielle Problem beheben und die Warnmeldung ein für alle Mal abrufen. Wenn Sie Letzteres wünschen, gehen Sie wie folgt vor.

Öffnen Sie Ihre matplotlibrc-Datei und suchen Sie nach axes.color_cycle. Wenn Sie eine Warnmeldung erhalten, bedeutet dies, dass Ihre matplotlibrc-Datei etwa Folgendes anzeigen sollte:

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

Sie sollten diese Zeile folgendermaßen ersetzen:

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

Und die Warnmeldung sollte weg sein.

7
mairan

Sie können die Warnung UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. unterdrücken, indem Sie an der entsprechenden Stelle prop_cycle verwenden. 

An der Stelle, an der Sie color_cycle verwendet hatten, beispielsweise:

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

Ersetze es durch Folgendes:

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

Für einen größeren Einblick hier ein Beispiel:

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

Downgrade auf matplotlib 1.4.3 die vorherige stabile Version.

0
Tes3awy