2015-04-07 24 views
16

Supponendo Ho un DataFrame che assomiglia a questo:Plot grafico a barre da Panda dataframe

Hour | V1 | V2 | A1 | A2 
0 | 15 | 13 | 25 | 37 
1 | 26 | 52 | 21 | 45 
2 | 18 | 45 | 45 | 25 
3 | 65 | 38 | 98 | 14 

Nel tentativo di creare un grafico a barre per confrontare le colonne V1 e V2 dal Hour. quando lo faccio:

import matplotlib.pyplot as plt 
ax = df.plot(kind='bar', title ="V comp",figsize=(15,10),legend=True, fontsize=12) 
ax.set_xlabel("Hour",fontsize=12) 
ax.set_ylabel("V",fontsize=12) 

ottengo una trama e una leggenda con i valori e tutti i nomi delle colonne. Come posso modificare il mio codice così la trama e la leggenda visualizza solo le colonne V1 e V2

+0

Non sarebbe fornire ciò che si vuole semplicemente sub-selezionando le colonne di interesse prima:. 'Ax = df [[ 'V1',] 'V2'] plot (tipo =' bar ', title = "V comp", figsize = (15,10), legend = True, fontsize = 12) '? – EdChum

+0

@EdChum Stavo provando lungo quella linea ma continuavo a ricevere messaggi di errore. Sto usando http://pandas.pydata.org/pandas-docs/version/0.15.2/visualization.html come riferimento e non ho trovato un esempio di ciò di cui avevo bisogno. Ma tu hai ragione. Se rispondi, posso accettarlo. Se puoi aggiungere la spiegazione della sintassi '[[]]' dato che stavo facendo 'ax = df ['V1', 'V2']' – Alfonso

risposta

32

per tracciare solo una selezione delle colonne è possibile selezionare le colonne di interesse passando un elenco per l'operatore pedice:

ax = df[['V1','V2']].plot(kind='bar', title ="V comp", figsize=(15, 10), legend=True, fontsize=12) 

Quello che hai provato era df['V1','V2'] questo solleva un KeyError come correttamente non esiste alcuna colonna con quella etichetta, anche se sembra divertente in un primo momento devi considerare che stai passando un elenco da qui le parentesi quadre doppie [[]].

import matplotlib.pyplot as plt 
ax = df[['V1','V2']].plot(kind='bar', title ="V comp", figsize=(15, 10), legend=True, fontsize=12) 
ax.set_xlabel("Hour", fontsize=12) 
ax.set_ylabel("V", fontsize=12) 
plt.show() 

enter image description here

+0

Congratulazioni per l'oro dei panda !! –

+1

@AndyHayden, grazie Andy, sento ancora di avere molto altro da imparare – EdChum

+0

Ok, come aggiungeresti le rispettive barre di errore a ciascuna serie? – FaCoffee

Problemi correlati