Matplotlib-Stil funktioniert nicht in Pandas Bar Plot

Der Code, den ich verwendet habe, um die Bar-Plot wie pro Pandas Visualisierung Tutorial zu produzieren .

import pandas as pd import matplotlib.pyplot as plt import numpy as np plt.style.use('ggplot') np.random.seed(123456) ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) ts = ts.cumsum() df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) df = df.cumsum() plt.figure() df.ix[5].plot(kind='bar'); plt.axhline(0, color='k') plt.show() 

Ich bekomme:

Bar-Plot mit matplotlib Standard-Farben, wenn ggplot Farben erwartet

Ich erwartete, die Balkenfarben wie im Tutorial (Zinnoberrot) zu bekommen, stattdessen sind die Stäbe die Standard-Matplotlib-blaue Farbe.

Ich vermute, das Problem ist in Pandas. Farben sind richtig, wenn Pandas nicht benutzt wird.

 import matplotlib.pyplot as plt import numpy as np plt.style.use('ggplot') fig, ax = plt.subplots() x = np.arange(5) y1, y2 = np.random.randint(1, 25, size=(2, 5)) width = 0.25 ax.bar(x, y1, width) ax.bar(x + width, y2, width) ax.set_xticks(x + width) ax.set_xticklabels(['a', 'b', 'c', 'd', 'e']) plt.show() 

Ich habe meine Umgebung mit conda.

 In [22]: pd.__version__ Out[22]: u'0.17.1' 

Wie bekomme ich Pandas die richtigen Farben?

  • Interaktive (?) Plotten in Spyder mit Matplotlib
  • Plotten in voller Auflösung mit matplotlib.pyplot, imshow () und savefig ()?
  • Wie verstecke man <matplotlib.lines.Line2D> im IPython Notebook
  • Speichern und Plot mehrere Datensätze mit Python
  • Machen Sie Kontur der Streuung
  • Plotten der gleichen Spalte aus verschiedenen DataFrames in einem Panel
  • X, y aus einem Scatter-Plot mit mehreren Datensätzen?
  • Graphing Datum vs Zeit auf Plotly
  • 2 Solutions collect form web for “Matplotlib-Stil funktioniert nicht in Pandas Bar Plot”

    Wie ali_m in den Kommentaren darauf hingewiesen hat, ist es der Bug in der neuesten Version von Pandas (0.17.1) bei der Verwendung von matplotlib Version 1.5.0.

    Das Update wird in der nächsten Pandas-Version sein.

    Bis die neue Freigabe aus ist, lief ich

     pip install git+git://github.com/pydata/pandas.git@master 

    In meiner conda Umgebung, um die neuesten Fixes zu bekommen.

    Dieser Fehler scheint jetzt behoben zu sein. Ich bekomme vermillion Bars, wenn ich den Code in der ursprünglichen Frage ausführe.

    Python ist die beste Programmiersprache der Welt.