Graphique à barres de graphe de Pandas DataFrame

en Supposant que j'ai un DataFrame qui ressemble à ceci:

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

j'essaie de créer un diagramme en barres pour comparer les colonnes V1 et V2 par Hour. Quand je fais:

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)

j'obtiens un tracé et une légende avec toutes les valeurs et les noms des colonnes. Comment puis-je modifier mon code pour l'intrigue et la légende affiche uniquement les colonnes V1 et V2

25
demandé sur Alfonso 2015-04-07 21:30:59

1 réponses

Pour tracer une sélection de vos colonnes vous pouvez sélectionner les colonnes d'intérêt par le passage d'une liste à l'indice de l'opérateur:

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

Ce que vous avez essayé df['V1','V2'] cela permettra d'amasser un KeyError comme correctement aucune colonne n'existe avec cette étiquette, bien qu'elle semble drôle au premier abord, vous devez considérer que votre passent une liste d'où les crochets doubles [[]].

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

43
répondu EdChum 2016-10-28 15:38:48