2017-12-13 4 views
0

Das Ziel ist es, erstellen Sie eine gruppierte Balkendiagramm zu erstellen, nicht Nebenhandlungen wie das Bild untenFunktion gruppiert Balkendiagramm

Gibt es eine einfache Art und Weise eine gruppierte Balkendiagramm in Python zu erstellen? Im Moment bekomme ich separate Balkendiagramme anstelle von separaten Balken auf einem Grundstück.

df = pd.DataFrame([['g1','c1',10],['g1','c2',12],['g1','c3',13],['g2','c1',8],['g2','c2',10],['g2','c3',12]],columns=['group','column','val']) 

%matplotlib inline 
df.groupby(['group']).plot(kind='bar') 

enter image description here

+1

Ich denke, dies in der Tat nicht ein Duplikat der Frage erwähnt. Es könnte jedoch immer noch vorher gefragt worden sein (fühlt sich an wie eine normale Sache zu tun), wenn also jemand einen dup findet, könnten wir wieder schließen. Bis dahin sehe meine Antwort unten. – ImportanceOfBeingErnest

Antwort

1

Pandas werden Bars von Spalten gruppiert anzeigen. Einträge in jeder Zeile, aber unterschiedlichen Spalten bilden eine Gruppe in der resultierenden Grafik. Daher müssen Sie Ihren Datenrahmen neu gestalten, um die "Gruppe" als Spalten zu haben. In diesem Fall können Sie wie verschwenken

df.pivot("column", "group", "val") 

group g1 g2 
column   
c1  10 8 
c2  12 10 
c3  13 12 

dies in einem gruppierten Balkendiagramm führt Plotten zu erzeugen.

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame([['g1','c1',10],['g1','c2',12],['g1','c3',13],['g2','c1',8], 
        ['g2','c2',10],['g2','c3',12]],columns=['group','column','val']) 

df.pivot("column", "group", "val").plot(kind='bar') 

plt.show() 

enter image description here

Verwandte Themen