Zeitreihen-Boxplot in Pandas

8

Wie kann ich einen Boxplot für eine Pandas-Zeitreihe erstellen, wo ich für jeden Tag eine Box habe?

Beispieldatensatz für stündliche Daten, wobei eine Box aus 24 Werten bestehen sollte:

%Vor%

Ich bin mir bewusst, dass ich eine zusätzliche Spalte für den Tag erstellen könnte, aber ich hätte gerne eine korrekte X-Achsen-Beschriftung und X-Limit-Funktionalität (wie in ts.plot() ), um mit dem Datetime-Index arbeiten zu können wäre großartig.

Es gibt eine ähnliche Frage für R / ggplot2 hier , wenn es hilft zu klären, was ich will.

    
Fred S 22.10.2014, 12:25
quelle

2 Antworten

6

Wenn es eine Option für Sie ist, würde ich Seaborn empfehlen, was ein Wrapper für Matplotlib ist. Sie könnten es selbst tun, indem Sie die Gruppen Ihrer Zeitreihen durchlaufen, aber das ist viel mehr Arbeit.

%Vor%

Was gibt:

Beachten Sie, dass ich das day of year als grouper an seaborn übergebe, wenn Ihre Daten mehrere Jahre umfassen, würde das nicht funktionieren. Sie könnten dann etwas wie:

betrachten %Vor%

Bearbeiten, für 3-stündlich könnte man dies als Grouper verwenden, aber es funktioniert nur, wenn keine Minuten oder weniger definiert sind. :

%Vor%     
Rutger Kassies 22.10.2014, 13:46
quelle
5

(Nicht genug Rep, um eine akzeptierte Lösung zu kommentieren, sondern stattdessen eine Antwort hinzuzufügen.)

Der akzeptierte Code hat zwei kleine Fehler: (1) muss numpy import und (2) nned hinzugefügt werden, um die Parameter x und y in der boxplot -Anweisung zu tauschen. Das Folgende erzeugt die gezeigte Kurve.

%Vor%     
dulrich 04.06.2016 08:35
quelle

Tags und Links