Trazar gráfico de barras de Pandas DataFrame


Suponiendo que tengo un DataFrame que se parece a esto:

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

Estoy tratando de crear una gráfica de barras para comparar las columnas V1 y V2 por el Hour. Cuando lo hago:

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)

Obtengo una gráfica y una leyenda con todos los valores y nombres de las columnas. ¿Cómo puedo modificar mi código para que la trama y la leyenda sólo muestra las columnas V1 y V2

Author: Alfonso , 2015-04-07

1 answers

Para trazar solo una selección de sus columnas, puede seleccionar las columnas de interés pasando una lista al operador de subíndice:

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

Lo que intentaste fue df['V1','V2'] esto levantará un KeyError ya que correctamente no existe ninguna columna con esa etiqueta, aunque parece gracioso al principio tienes que considerar que estás pasando una lista de ahí los dobles corchetes [[]].

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()

introduzca la descripción de la imagen aquí

 43
Author: EdChum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-28 15:38:48