X-Achsen-DateFormat im Pandas-Balkendiagramm kann nicht angepasst werden

8

Ich möchte ein Pandas-Zeitreihenobjekt data mit Matplotlib darstellen. Für ein einfaches Liniendiagramm data.plot() konnte ich das Datumsformat der x-Achse erfolgreich mit ax.xaxis.set_major_formatter(md.DateFormatter('%Y-%m-%d %H:%M:%S')) ändern.

Allerdings kann ich das für ein Balkendiagramm data.plot(kind='bar') nicht tun. Und das Diagramm würde nicht erscheinen. Gibt es eine Möglichkeit, das Datenformat für Pandabalken zu ändern? Ich weiß, dass ich ein Diagramm mit plt.bar-Methode erstellen kann, aber ich muss Pandas gestapelt Balkendiagramm für kompliziertere Daten verwenden.

%Vor%     
KLI 16.10.2013, 18:06
quelle

2 Antworten

17

Da Pandas einfach Matplotlib verwenden, können Sie natürlich ein identisches (gestapeltes) Balkendiagramm mit Matplotlib erstellen. Es gibt keinen Grund, warum du nur Pandas dafür benutzen kannst.

Es wird jedoch in diesem Fall nicht helfen. Matplotlib bar() ändert die xvalues ​​von Daten in floats, daher funktioniert DateFormatter nicht mehr. Sie können die Xticks mit ax.get_xticks() überprüfen.

Ich sehe nicht, wie Sie die Xticks-Daten erstellen können, aber Sie können die X-Ticklabels selbst überschreiben:

%Vor%     
Rutger Kassies 17.10.2013, 07:49
quelle
0

Wenn Sie Ihre Daten mit groupby gruppiert haben, können Sie dasselbe wie oben mit

tun %Vor%

Mine wurde summiert und nach Monat gruppiert, sodass das index Tupel nur (2009,4) zum Beispiel war. Offensichtlich, wenn Sie mehr Aspekte zu Ihrem Tupel haben (d. H. Tag, Stunde), würden Sie diese der datetime-Funktion hinzufügen

    
mjp 26.05.2016 23:12
quelle

Tags und Links