![](https://www.analyticslane.com/storage/2023/06/logo-wide-lightbg.png)
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](https://www.analyticslane.com/storage/2023/07/barras-1024x768.png)
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](https://www.analyticslane.com/storage/2023/07/columnas-1024x768.png)
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](https://www.analyticslane.com/storage/2023/07/barras_palette-1024x768.png)
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](https://www.analyticslane.com/storage/2023/07/barras_annotate-1024x774.png)
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.](https://www.analyticslane.com/storage/2023/07/barras_ancho-1024x772.png)
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](https://www.analyticslane.com/storage/2023/07/barras_max-1024x788.png)
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.
Deja una respuesta