Ir al contenido principal

Seaborn barplot: guía completa

Aprende a crear y personalizar barplots de Seaborn en Python. Domina técnicas clave para visualizar relaciones en datos categóricos, desde gráficos básicos hasta funciones avanzadas.
Actualizado 17 sept 2026  · 10 min leer

Explorar con IA

ChatGPTClaudePerplexity

La visualización de datos convierte información compleja en conclusiones claras y accionables. Los barplots de Seaborn destacan al presentar datos categóricos con gráficos estadísticos elegantes. Esta biblioteca combina la flexibilidad de Matplotlib con la potencia de pandas, lo que la hace ideal tanto para análisis rápidos como para visualizaciones listas para publicar.

Los barplots de Seaborn ofrecen funciones esenciales para el análisis de datos, desde comparaciones básicas hasta representaciones estadísticas avanzadas. Resuelven tareas habituales como comparar métricas de ventas por región, analizar respuestas de encuestas y visualizar resultados de experimentos. 

Su sintaxis intuitiva y las funciones estadísticas integradas los convierten en una herramienta valiosa tanto para quienes empiezan como para profesionales con experiencia.

En este artículo, veremos los conceptos básicos de los barplots de Seaborn, cómo crear gráficos simples con ejemplos de código, cómo mejorarlos mediante personalización, cómo aplicar funciones avanzadas y sus usos prácticos.

Si quieres profundizar en visualización de datos con Seaborn, echa un vistazo a nuestro curso Introduction to Data Visualization with Seaborn.

Conceptos básicos de Seaborn barplot

Antes de entrar en los barplots, repasemos algunos fundamentos de Seaborn, sus ventajas para las barras y cómo preparar el entorno de trabajo.

¿Qué es Seaborn?

Seaborn es una biblioteca de visualización estadística en Python construida sobre Matplotlib. Está especializada en crear gráficos estadísticos informativos y atractivos con muy poco código. Se integra estrechamente con DataFrames de pandas, lo que la hace especialmente eficaz en flujos de trabajo de análisis de datos.

Proporciona una interfaz de alto nivel para dibujar gráficos atractivos gestionando automáticamente muchos detalles de estilo.

La biblioteca sobresale en tres aspectos clave:

  • Se integra sin fricciones con DataFrames de pandas, lo que facilita la manipulación de datos
  • Incluye funciones estadísticas integradas, evitando cálculos por separado
  • Aplica temas y paletas de color con acabado profesional por defecto

Por ejemplo, mientras que Matplotlib requiere varias líneas de código para crear una visualización estadística básica, Seaborn puede hacer lo mismo con una sola llamada de función. 

Para los gráficos de barras en concreto, Seaborn añade funciones potentes como el cálculo automático de la media, intervalos de confianza y manejo avanzado de variables categóricas: capacidades que en Matplotlib puro exigirían bastante código adicional.

¿Por qué usar barplots?

Los barplots representan datos categóricos mediante barras verticales u horizontales, donde la longitud refleja un valor numérico. Son ideales para comparar valores entre grupos o categorías. En análisis de datos, ayudan a visualizar resultados de encuestas, cuotas de mercado, métricas de rendimiento y distribuciones de ventas.

Ventajas clave:

  • Comparación clara de cantidades entre categorías
  • Funciones estadísticas integradas (media, mediana, intervalos de confianza)
  • Representación eficaz de datos agrupados
  • Elementos visuales sencillos pero informativos
  • Opciones de personalización sencillas para presentaciones profesionales

Configuración rápida

Para empezar a crear barplots con Seaborn, tenemos que preparar el entorno de Python. Así es como puedes empezar:

Primero, instala los paquetes necesarios como se muestra a continuación:

pip install seaborn pandas numpy

Ya tenemos las herramientas de visualización listas. Ahora importamos las bibliotecas que usaremos, como ves abajo:

# Para crear visualizaciones estadísticas
import seaborn as sns

# Para manipulación y análisis de datos
import pandas as pd

# Para operaciones numéricas
import numpy as np

Podemos mejorar el aspecto de los gráficos con algunos ajustes de estilo, así:

# Estilo blanco y limpio
sns.set_style("white")

El estilo white elimina las cuadrículas y hace que los gráficos se vean bien en la mayoría de pantallas. En las siguientes secciones veremos cómo crear barplots y mejorarlos.

Crear barplots básicos en Seaborn

Un barplot es perfecto para visualizar relaciones entre variables categóricas y numéricas. Muestra estimaciones puntuales (como media o mediana) y la incertidumbre alrededor de esas estimaciones mediante barras de error. Veamos la sintaxis básica de seaborn barplot.

Sintaxis y parámetros

La función sns.barplot() de Seaborn ofrece una forma directa de crear gráficos de barras estadísticos. La estructura básica de .barplot() es la siguiente:

sns.barplot(
    data=None,      # Tu DataFrame
    x=None,         # Variable categórica
    y=None,         # Variable numérica
    estimator='mean',  # Función estadística a aplicar
    errorbar=('ci', 95),  # Tipo y nivel de barras de error
    orient=None     # "v" vertical, "h" horizontal
)

Estos parámetros controlan qué datos mostramos y cómo los mostramos. El parámetro data recibe tu DataFrame, mientras que x e y indican qué columnas usar para categorías y valores. estimator te permite elegir la función estadística (media por defecto) y errorbar define cómo mostrar la incertidumbre. También puedes alternar entre orientación vertical u horizontal con orient.

Ahora, veamos cómo crear barplots eficaces usando el dataset integrado tips, que contiene información sobre cuentas y propinas en restaurantes.

Ejemplo: visualizando un dataset sencillo

Analizaremos el comportamiento de las propinas a lo largo de los días de la semana con el dataset tips. Incluye datos como el día, el importe total de la cuenta, la propina y otras variables.

# Importar las bibliotecas necesarias y cargar el dataset
import seaborn as sns
tips = sns.load_dataset("tips")

# Crear un barplot básico que muestre la propina media por día
sns.barplot(data=tips, x="day", y="tip")

Resultado:

El código generó la visualización anterior, donde cada barra representa la propina media para cada día de la semana. La altura de cada barra muestra el valor medio de la propina, mientras que las líneas negras (barras de error) indican el intervalo de confianza del 95%, lo que nos da información tanto de la propina típica como de su variabilidad.

También podemos examinar los patrones de propinas según el momento de la comida:

# Crear un barplot que muestre la propina media por franja del día
sns.barplot(data=tips, x="time", y="tip")

Resultado:

Este gráfico revela la diferencia en el comportamiento de propinas entre el servicio de comida y cena. La altura de cada barra representa la propina media para esa franja, con barras de error que muestran la variabilidad. Este tipo de visualización facilita detectar patrones y comparar grupos de un vistazo.

Estos barplots básicos son la base para visualizaciones más complejas. En la siguiente sección, veremos cómo mejorarlos con colores, agrupaciones y otras personalizaciones para crear gráficos más informativos y atractivos.

Mejorar los barplots con personalizaciones

Añadir mejoras visuales a los barplots puede hacer que los datos sean más claros y atractivos. Veamos distintas formas de personalizarlos usando el dataset tips.

Añadir colores a los barplots

Seaborn ofrece varias formas de añadir color a tus barplots para que sean más informativos y llamativos. Puedes usar un único color para todas las barras o crear grupos codificados por color,

El parámetro color establece un color único para todas las barras, mientras que palette te permite especificar un esquema de colores cuando tu dato tiene múltiples grupos. Seaborn incluye muchas paletas predefinidas que funcionan bien con distintos tipos de datos.

Podemos crear un barplot sencillo con un solo color usando el parámetro color como se muestra a continuación:

# Carga el dataset tips si aún no lo has hecho
import seaborn as sns
tips = sns.load_dataset("tips")

# Barplot de un solo color
sns.barplot(data=tips, x="day", y="tip", color="skyblue")

Resultado:

También podemos crear un barplot con varios colores usando el parámetro palette, como ves abajo:

# Carga el dataset tips si aún no lo has hecho
import seaborn as sns
tips = sns.load_dataset("tips")

# Usar una paleta de colores diferente
sns.barplot(data=tips, x="day", y="tip", palette="Set2")

Resultado:

Seaborn barplot con múltiples columnas

Una de las funciones más potentes de los barplots de Seaborn es mostrar relaciones entre múltiples variables con el parámetro hue. Esto crea barras agrupadas y facilita las comparaciones.

Comparemos las propinas por día y por franja (comida/cena) usando hue como se muestra a continuación:

# Carga el dataset tips si aún no lo has hecho
import seaborn as sns
tips = sns.load_dataset("tips")

# Crear un barplot agrupado que muestre propinas por día y franja
sns.barplot(
    data=tips,
    x="day",
    y="tip",
    hue="time"
)

Resultado:

El gráfico muestra dos barras, una para comida y otra para cena. Este agrupamiento nos permite ver no solo cómo varían las propinas por día, sino también cómo difieren según la franja.

Crear un stacked barplot con Seaborn

Los barplots apilados son excelentes para mostrar la composición de distintas categorías. Aunque Seaborn no tiene una función directa para barras apiladas, podemos combinarlo con matplotlib para crear visualizaciones apiladas efectivas. 

Este enfoque aprovecha la funcionalidad estadística de Seaborn y las capacidades de apilado de matplotlib. Como ejemplo, en el dataset tips, veamos cómo se reparten las propinas entre fumadores y no fumadores a lo largo de los días.

Empecemos importando las bibliotecas necesarias para la visualización:

# Importar las bibliotecas necesarias
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

Ahora cargamos nuestro dataset con información de propinas en restaurantes:

# Cargar el dataset tips
tips = sns.load_dataset("tips")

Creamos una figura con unas dimensiones adecuadas para la visualización:

# Crear la figura y el eje
plt.figure(figsize=(10, 4))

A continuación, calculamos la propina media de fumadores y no fumadores por día:

# Calcular valores para el apilado
# Filtrar fumadores, agrupar por día y obtener la propina media
smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean()
 
# Filtrar no fumadores, agrupar por día y obtener la propina media     
non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

Después, definimos los parámetros básicos para nuestras barras apiladas como se muestra:

# Representar las barras apiladas con matplotlib
days = smoker_means.index
width = 0.8

Ahora, creamos la capa inferior de las barras apiladas para no fumadores:

# Barras inferiores (no fumadores)
plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

Añadimos la capa superior con las propinas de fumadores:

# Barras superiores (fumadores)
plt.bar(days, smoker_means, width, bottom=non_smoker_means, 
        label='Smoker', color=sns.color_palette()[1])

Establecemos un estilo limpio sin cuadrículas con el estilo de Seaborn:

# Añadir el estilo de Seaborn
sns.set_style("white")

Por último, mostramos nuestro barplot apilado:

# Mostrar el gráfico
plt.show()

Resultado:

El gráfico resultante muestra las propinas medias de fumadores apiladas sobre las de no fumadores para cada día, lo que facilita comparar tanto el total como la aportación de cada grupo.

Este recurso nos permite:

  • Mantener el estilo visual atractivo de Seaborn
  • Apilar las barras para mostrar la composición
  • Conservar la naturaleza estadística de la visualización
  • Usar las paletas de Seaborn para mayor consistencia

Funciones avanzadas y consejos

Ahora que hemos visto lo básico y la personalización, vamos con funciones avanzadas que pueden hacer tus barplots más informativos y profesionales. Seguiremos utilizando el dataset tips para ilustrarlas.

Anotar barplots

Añadir etiquetas de valor a las barras puede hacer tus visualizaciones más precisas e informativas. Vamos a crear un barplot que muestre el valor exacto de la propina sobre cada barra.

Primero, importamos las bibliotecas y preparamos los datos:

# Importar las bibliotecas necesarias
import seaborn as sns
import matplotlib.pyplot as plt

# Cargar y preparar el dataset tips
tips = sns.load_dataset("tips")

Creamos el barplot con valores estadísticos:

# Crear el barplot básico
ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None)    # Crear el barplot y guardar el objeto de ejes para anotaciones

Después, añadimos las etiquetas de valor en la parte superior de cada barra, como se muestra abajo:

# Obtener la altura de cada barra
bars = ax.containers[0]                           # Obtener el contenedor de barras
heights = [bar.get_height() for bar in bars]      # Extraer la altura de cada barra

# Añadir anotaciones de texto en cada barra
for bar, height in zip(bars, heights):            # Recorrer barras y alturas a la vez
    ax.text(
        bar.get_x() + bar.get_width()/2.,        # Posición X (centro de la barra)
        height,                                   # Posición Y (parte superior de la barra)
        f'${height:.2f}',                        # Texto (formato moneda)
        ha='center',                             # Alineación horizontal
        va='bottom'                              # Alineación vertical
    )

Resultado:

Gestionar ejes y escalas

Al crear barplots, ajustar los ejes ayuda a que los datos sean más legibles y contundentes. Veamos cómo personalizar límites, etiquetas y marcas de los ejes con las funciones de Seaborn.

Primero, importamos la biblioteca y cargamos el dataset necesario para la visualización:

# Importar las bibliotecas necesarias
import seaborn as sns

# Cargar y preparar el dataset tips
tips = sns.load_dataset("tips")

Podemos crear un barplot con etiquetas personalizadas y un orden específico de los días. El parámetro order nos permite definir exactamente cómo queremos que aparezcan los días en el eje x:

# Crear barplot con etiquetas de ejes
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    order=['Thur', 'Sat', ‘Fri', 'Sun']     # Establecer un orden personalizado para los días
)

Para hacer el gráfico más informativo, añadimos etiquetas descriptivas a ambos ejes con el método set:

# Establecer etiquetas descriptivas de los ejes
ax.set(
    xlabel='Day of Week',
    ylabel='Average Tip ($)'
)

Para afinar la visualización, podemos fijar límites y marcas específicas. El parámetro ylim controla el rango del eje y, mientras que xticks y yticks nos permiten definir dónde queremos que aparezcan las marcas:

# Personalizar límites y marcas de los ejes
ax.set(
    ylim=(0, 5),                            # Rango del eje y de 0 a 5
    xticks=range(4),                        # Posiciones de las marcas en el eje x
    yticks=[0, 1, 2, 3, 4, 5]              # Valores específicos de marcas en el eje y
)

Para aplicar todos estos cambios en el gráfico, debemos ejecutarlos en conjunto y no por separado. El código completo es el siguiente:

# Importar las bibliotecas necesarias
import seaborn as sns

# Cargar y preparar el dataset tips
tips = sns.load_dataset("tips")

# Crear barplot con etiquetas de ejes
ax = sns.barplot(
   data=tips,
   x="day",
   y="tip",
   order=['Thur', 'Sat', 'Fri', 'Sun']     # Establecer un orden personalizado para los días
)

# Establecer etiquetas descriptivas de los ejes
ax.set(
   xlabel='Day of Week',
   ylabel='Average Tip ($)'
)

# Personalizar límites y marcas de los ejes
ax.set(
   ylim=(0, 5),                            # Rango del eje y de 0 a 5
   xticks=range(4),                        # Posiciones de las marcas en el eje x
   yticks=[0, 1, 2, 3, 4, 5]              # Valores específicos de marcas en el eje y
)

Resultado:

El gráfico resultante muestra las propinas por día con etiquetas claras, escalas adecuadas y marcas bien organizadas, lo que facilita la lectura e interpretación de los datos.

Incorporar barras de error

Las barras de error ayudan a visualizar la incertidumbre o variabilidad de tus datos. Seaborn ofrece varias opciones para añadirlas a los barplots, incluidos intervalos de confianza y desviación estándar.

Primero, importamos la biblioteca y cargamos el dataset para la visualización:

# Importar las bibliotecas necesarias
import seaborn as sns

# Cargar y preparar el dataset tips
tips = sns.load_dataset("tips")

Por defecto, Seaborn muestra intervalos de confianza del 95%. Podemos modificarlo con el parámetro 'errorbar' para mostrar distintos tipos de estimaciones estadísticas:

# Crear barplot con intervalos de confianza
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    errorbar="ci",                          # Mostrar intervalo de confianza
    capsize=0.1                            # Añadir topes pequeños a las barras de error
)

Resultado:

También podemos mostrar la desviación estándar en lugar de intervalos de confianza, lo que ayuda a visualizar la dispersión de los datos:

# Cambiar a desviación estándar
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    errorbar="sd",                          # Mostrar desviación estándar
    capsize=0.1                            # Añadir topes pequeños a las barras de error
)

Resultado:

En ocasiones, quizá queramos eliminar las barras de error para un aspecto más limpio:

# Crear barplot sin barras de error
ax = sns.barplot(
    data=tips,
    x="day",
    y="tip",
    errorbar=None                           # Eliminar barras de error
)

Resultado:

Estos gráficos muestran cómo los distintos tipos de barras de error ayudan a entender la variabilidad de las propinas a lo largo de los días.

Aplicaciones prácticas de los barplots de Seaborn

Los barplots son muy versátiles, especialmente útiles cuando necesitas comparar valores entre categorías o analizar varias variables a la vez. Veamos dos aplicaciones comunes donde Seaborn destaca.

Visualizar tendencias en datos categóricos

Los barplots de Seaborn son excelentes para revelar patrones en datos categóricos, especialmente al analizar métricas entre distintos grupos. Al mostrar la tendencia central y la incertidumbre, ayudan a identificar diferencias significativas entre categorías. 

Por eso son ideales para analizar el comportamiento de clientes, el rendimiento de productos o respuestas de encuestas, cuando necesitas comparar valores entre grupos bien diferenciados.

Comparar múltiples variables

Cuando el análisis implica varios factores, los barplots de Seaborn pueden resaltar relaciones complejas. Usar opciones como el agrupamiento (hue) o el apilado ayuda a comparar variables simultáneamente y facilita detectar patrones e interacciones entre distintos aspectos de los datos.

Conclusión 

Los barplots de Seaborn equilibran simplicidad e insight estadístico. Su sintaxis intuitiva, combinada con funciones estadísticas robustas, los convierte en una herramienta esencial para la visualización de datos. Desde comparaciones básicas por categoría hasta visualizaciones agrupadas avanzadas, las barras ayudan a descubrir y comunicar patrones de forma eficaz.

¿Listo para llevar tus habilidades de visualización de datos al siguiente nivel? Esto es lo siguiente que puedes explorar:

¿Quieres llevar tus habilidades con Seaborn un paso más allá? Apúntate al Intermediate Data Visualization with Seaborn.

Seaborn Barplot FAQs

What is a Seaborn barplot used for?

El barplot de Seaborn visualiza la relación entre una variable categórica y una numérica mostrando estimaciones estadísticas con barras de error.

Can I change the color of the Seaborn barplots?

Sí, puedes personalizar los colores usando el parámetro color para un único color o palette para esquemas multicolor.

Can I create grouped barplots in Seaborn?

Sí, usa el parámetro hue para crear barras agrupadas en función de una variable categórica.

How do I add error bars to my Seaborn barplot?

Utiliza el parámetro errorbar, por ejemplo, errorbar='ci' para intervalos de confianza o errorbar='sd' para desviación estándar.

Can Seaborn create horizontal bar plots?

Sí, establece orient='h' en la función para crear barras horizontales en lugar de verticales.


Author
Rajesh Kumar
LinkedIn

Soy redactora de contenidos de ciencia de datos. Me encanta crear contenidos sobre temas de IA/ML/DS. También exploro nuevas herramientas de IA y escribo sobre ellas.

Temas
Python
Visualización de datos

Top DataCamp Courses

Curso

Introducción a la visualización de datos con Seaborn

4 h
183.6K
Aprende a crear visualizaciones informativas y atractivas en Python con la biblioteca Seaborn.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de Python Seaborn Line Plot: Crear visualizaciones de datos

Descubra cómo utilizar Seaborn, una popular biblioteca de visualización de datos de Python, para crear y personalizar gráficos de líneas en Python.
Elena Kosourova's photo

Elena Kosourova

12 min

Tutorial

Python Seaborn Tutorial Para Principiantes: Empezar a visualizar datos

Este tutorial de Seaborn le introduce en los fundamentos de la visualización de datos estadísticos
Moez Ali's photo

Moez Ali

20 min

Tutorial

Introducción al trazado con Matplotlib en Python

Este tutorial muestra cómo utilizar Matplotlib, una potente biblioteca de visualización de datos en Python, para crear gráficos de líneas, barras y dispersión con datos bursátiles.

Kevin Babitz

25 min

line plot python

Tutorial

Gráficos lineales en MatplotLib con Python

Este tutorial práctico profundiza en la creación y personalización de gráficos lineales con Matplotlib, una potente biblioteca de visualización de datos en Python.
Arunn Thevapalan's photo

Arunn Thevapalan

11 min

Tutorial

Gráfico lineal de series temporales Matplotlib

Este tutorial explora cómo crear y personalizar gráficos de líneas de series temporales en matplotlib.
Elena Kosourova's photo

Elena Kosourova

8 min

Tutorial

Histogramas en Matplotlib

Aprende sobre histogramas y cómo puedes utilizarlos para obtener información de los datos con la ayuda de matplotlib.
Aditya Sharma's photo

Aditya Sharma

8 min

Ver MásVer Más