El método plot
de Pandas tiene un parámetro kind
que nos ayuda a cambiar el tipo de gráfico que queremos dibujar. Vamos a ver algunos de los tipos de gráficos que podemos dibujar haciendo uso de este método con Pandas. Comenzaremos por los gráficos de barras.
Para representar los datos mediante diagramas de barras, solo es necesario indicar que el tipo de gráfico que queremos dibujar es de tipo bar
. Esto lo haremos mediante el parámetro kind='bar'
.
Vamos a hacer un ejemplo usando los datos del número de medallas de distintos países en los Juegos Olímpicos. El dataset contiene información del número de medallas de oro, plata y bronce de cada país. Además, los datos están ordenados por el número de medallas de oro.
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.read_csv("../data/medals.csv", index_col="Country")
# Nos quedamos con los 10 primeros países (están por orden de número de medallas de oro)
muestra = df[:10].copy()
muestra
muestra.plot(kind = 'bar')
muestra.plot(kind = 'bar'); # Observa que hemos añadido ;
Como podemos observar, cada barra representa el valor de una columna del DataFrame. Además, los valores de cada una de las filas se agrupan produciendo un grupo de barras por cada uno de los países (que son el índice del DataFrame). Si no hay valores en una celda entonces no se dibuja la barra.
Podemos crear un diagrama de barras horizontales en lugar de un diagrama de barras verticales:
muestra.plot(kind = 'barh');
El grosor de las barras se calcula de manera automática. Sin embargo, podemos modificarlo usando el parámetro width
. Se suele utilizar un valor entre 0 y 1 que indica cuál es el porcentaje de tamaño de cada grupo de barras con respecto al tamaño total que pueden ocupar. Por defecto, el valor es 0.5
, lo que deja un gran espacio entre los grupos de barras. Podemos ver cómo queda con otros valores:
muestra.plot(kind = 'barh', width=1) # Cada grupo de barras ocupa todo el espacio que tiene asignado
muestra.plot(kind = 'barh', width=0.8); # Generamos un pequeño espacio entre los grupos de barras
El parámetro stacked
permite crear gráficos de barras apiladas. Además, podemos establecer cierto nivel de transparencia a los colores de las barras con el parámetro alpha
, que toma valores entre 0 y 1, donde 0 representa un color completamente transparente y 1, un color completamente opaco:
muestra.plot(kind = 'bar',
stacked = 'True', # Muestra las barras apiladas
alpha = 0.4, # nivel de transparencia
width = 0.9, # Grosor de las barras para dejar espacio entre ellas
figsize=(9,4)); # Cambiamos el tamaño de la figura
Si queremos mostrar más de un gráfico de barras simultáneamente tendremos que crear una figura con múltiples paneles, cada uno de los cuales contiene un gráfico diferente. Esto lo realizaremos utilizando el parámetro subplots
. Si establecemos este parámetro con valor True
entonces dibujaremos un gráfico por cada una de las columnas de la tabla.
Si, por ejemplo, queremos mostrar un gráfico de barras por cada uno de los tipos de medallas escribiremos lo siguiente:
muestra.plot(kind = 'bar',
width=0.8,
subplots=True,
figsize=(10,20));
Finalmente, podemos indicar qué colores queremos usar para cada serie mediante el parámetro color
. Este parámetro puede recibir una lista de colores, codificados como veremos en el tema sobre estilos y colores en Matplotlib
# Colores (en HEX) para oro, plata y bronce, respectivamente
coloresMedallas = ['#FFD700','#C0C0C0','#8C7853']
muestra.plot(kind = 'bar',
width=0.8,
figsize=(10,4),
color = coloresMedallas);