Python

Creación de gráficos de barras y gráficos de columnas con Seaborn

Los gráficos de barras y los gráficos de columnas son una forma altamente efectiva de visualizar datos categóricos. Permitiendo comparar los valores asociados a cada categoría. Seaborn, una de las principales bibliotecas de visualización de datos en Python, ofrece varias funciones para crear este tipo de gráficos. En esta entrada, se mostrará las principales opciones que existen para crear gráficos de barras y gráficos de columnas con Seaborn. Se mostrará cómo representar variables categóricas en el eje x, valores numéricos en el eje y, y personalizar los gráficos para resaltar la información clave.

Carga de datos de ejemplo

Antes de poder crear gráficos de barras o gráficos de columnas con Seaborn, es necesario importar un conjunto de datos en un DataFrame de Pandas. Para hacer más fácil que cualquier lector pueda repetir los ejemplos se utilizará el conjunto de datos “tips” que viene con Seaborn. Este conjunto de datos contiene información sobre propinas en un restaurante. Para cargarlo en un DataFrame de Pandas se puede utilizar el siguiente código.

import seaborn as sns

# Cargar el conjunto de datos "tips"
tips_data = sns.load_dataset("tips")

# Imprimir los primeros registros del conjunto de datos
print(tips_data.head())
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

Creación de gráficos de barras

Los gráficos de barras son ideales para mostrar los valores asociados con diferentes categorías de datos. La función para crear este tipo de gráficos Seaborn es barplot(). Una función que necesita los datos en un DataFrame de Pandas, indicado mediante el parámetro data, la variable categórica, iniciada mediante el parámetro x, y los valores que se desean mostrar, lo que se indica mediante el parámetro y. Para crear una gráfica de barras en la que se muestre el promedio de la columna total_bill para cada uno de los días se la semana (variable days) se puede usar el siguiente código.

import matplotlib.pyplot as plt

# Crear un gráfico de barras de la columna "day" y "total_bill" promedio
sns.barplot(data=tips_data, x='day', y='total_bill', errorbar=None)

# Mostrar el gráfico
plt.show()
Gráfico de barras creado con Seaborn

Como se explicó en la introducción de esta serie, los gráficos de barras muestran por defecto el promedio de la variable indicada y agregan a cada una de las barras una línea con el error. Para evitar que se muestre esta línea se debe indicar mediante el parámetro errorbar asignando el valor None.

Creación de gráficos de columnas

Los gráficos de columnas son similares a los gráficos de barras, pero muestran las barras de manera horizontal en lugar de vertical. Para conseguir estas gráficas en Seaborn también se tiene que utilizar la función barplot() pero usando la propiedad orient para indicar que la orientación debe ser horizontal con el valor 'horizontal'. Así, se puede repetir la gráfica anterior como un gráfico de columnas simplemente agregando esta propiedad como se muestra a continuación.

# Crear un gráfico de columnas de la columna "day" y "total_bill" promedio
sns.barplot(data=tips_data, y='day', x='total_bill', orient='horizontal', errorbar=None)

# Mostrar el gráfico
plt.show()
Gráfico de columnas creado con Seaborn

Personalización de gráficos de barras y gráficos de columnas con Seaborn

Seaborn ofrece una amplia gama de opciones de personalización para adaptar los gráficos de barras y gráficos de columnas a las necesidades de todos los usuarios. Es posible ajustar los colores, agregar etiquetas, cambiar los estilos, entre otras opciones.

Cambiar los colores de las barras o columnas

Es posible personalizar los colores de las barras o columnas utilizando la opción palette en la función barplot(). Por ejemplo, puedes utilizar una paleta de colores predefinida de Seaborn, como "Set2".

# Crear un gráfico de barras con colores personalizados
sns.barplot(data=tips_data, x='day', y='total_bill', palette='Set2', errorbar=None)

# Mostrar el gráfico
plt.show()
Gráfico de barras en el que se ha modificado los colores por defecto

Agregar etiquetas a las barras o columnas

También es posible agregar etiquetas a las barras o columnas para mostrar los valores asociados utilizando la función annotate() de Matplotlib. A continuación, se muestra un ejemplo de cómo hacerlo.

# Crear un gráfico de barras con etiquetas personalizadas
ax = sns.barplot(data=tips_data, x='day', y='total_bill', errorbar=None)

# Agregar etiquetas a las barras
for p in ax.patches:
    ax.annotate(format(p.get_height(), '.2f'), (p.get_x() + p.get_width() / 2., p.get_height()), ha = 'center', va = 'center', xytext = (0, 10), textcoords = 'offset points')

# Mostrar el gráfico
plt.show()
Gráfico de barras con etiquetas con el valor mostrado

En este ejemplo, la función annotate() para agregar etiquetas al centro de cada barra. Mediante el formato '.2f' se especifica que se desea mostrar los valores con dos decimales.

Ajustar el tamaño de las barras o columnas

El tamaño de las barras o columnas empleadas en el gráfico se puede modificar mediante el parámetro linewidth de la función barplot(). Por ejemplo, se puede aumentar el ancho de las barras a 2 puntos con el siguiente código. Para que se puedan apreciar los cambios es necesario cambiar el estilo de la gráfica, para lo que se debe usar la función `set_style()` de Seaborn.

# Establecer el estilo del gráfico
sns.set_style('darkgrid')

# Crear un gráfico de barras con barras más anchas
sns.barplot(data=tips_data, x='day', y='total_bill', palette='Set2' , linewidth=2, errorbar=None)

# Mostrar el gráfico
plt.show()
Gráfico de barras con los colores cambiados y el ancho de las barras

Mostrar otros estadísticos en las barras o columnas

Por defecto la función barplot() muestra la media de los valores, pero esto es algo que se puede cambiar mediante el parámetro estimator. En lugar de la media se puede usar valores como la suma, la media o el valor máximo. Así para ver la propina máxima por día se puede usar el siguiente código.

# Crear un gráfico de barras de la columna "day" y "total_bill" promedio
sns.barplot(data=tips_data, x='day', y='total_bill', estimator=max, errorbar=None)

# Mostrar el gráfico
plt.show()
Gráfico de barras en el que se muestra el valor máximo, no la media

Conclusiones

Los gráficos de barras y gráficos de columnas es una parte fundamental del análisis de datos. Siendo también una parte clave de la comunicación visual de resultados. La creación de gráficos de barras y gráficos de columnas con Seaborn es una tarea sencilla gracias a la función barplot(). Una función que cuenta con múltiples opciones para hacer que los gráficos generados sean exactamente los que se necesitan.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Seaborn

Recent Posts

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

2 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

4 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

1 semana ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

2 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.