2016-04-30 4 views
0

Kann mir jemand helfen, den besten Weg zur Visualisierung von 3 Säulen in Pandas zu definieren? Ich habe versucht, mit gestapelten Balkenplot und suchte nach anderen Lösungen auf SO, aber nichts hat funktioniert. Jede Hilfe wird geschätzt. Hier ist ein Dummy-Pandas Datenrahmen:Pandas Plot auf 3 Variablen

Name hour var 
Nem  0  2 
Kiz  4  1 
Hue  5  2 
Kiz  0  3 
Nem  7  7 
+0

Können Sie sagen, mehr darüber, warum gestapelten Balkendiagramm nicht funktioniert? –

+0

Es funktioniert, aber die Figur ist vollständig komprimiert, weil ich etwa 10000 Zeilen im Datenframe habe. Wenn es möglich ist, hätte ich gerne ein Balkendiagramm mit der Variable 'Name' auf der x-Achse, der Farbe, die durch' Stunde' definiert ist, und der Höhe jedes farbigen Teils des Balkens, definiert durch die Variable 'var'. – Makaroni

Antwort

1

UPDATE: ist das, was Sie wollen?

(df.pivot_table(index='Name', columns='hour', values='var', 
       aggfunc='sum', fill_value=0) 
    .plot.bar(stacked=True) 
) 

enter image description here

Erläuterung:

In [55]: (df.pivot_table(index='Name', columns='hour', values='var', 
    ....:     aggfunc='sum', fill_value=0) 
    ....:) 
Out[55]: 
hour 0 3 4 5 7 
Name 
Hue 0 6 0 2 0 
Kiz 3 0 1 0 0 
Nem 2 5 0 0 7 

ALTE Antwort:

Sie seaborn Modul für das verwenden:

import seaborn as sns 

sns.barplot(x='Name', y='var', hue='hour', data=df, saturation=0.8) 

enter image description here

Daten:

In [20]: df 
Out[20]: 
    Name hour var 
0 Nem  0 2 
1 Nem  3 5 
2 Kiz  4 1 
3 Hue  5 2 
4 Kiz  0 3 
5 Nem  7 7 
6 Hue  3 6 
+0

Vielen Dank für die Antwort. Ich frage mich, ob es möglich ist, dies ohne 'Seaborn' zu tun, und könnte es so gemacht werden, wie ich es mit einem Balken pro Name und unterschiedlicher Farbe beabsichtigte? Zum Beispiel, wenn ich diese Figur anschaue, bin ich mir nicht sicher, ob 'Stunde 7' zu' Kiz' oder 'Nem' gehört. – Makaroni

+0

Neue Antwort sollte passen! Vielen Dank! – Makaroni