Volver a la lista

Seaborn: visualización declarativa

Aprenda a crear rápidamente diagramas de caja, diagramas de recuento y mapas de calor utilizando la sintaxis declarativa de Seaborn.

Principiante
|
10min
|
Verificado (2026-07)
Seabornvisualización declarativaboxplotcountplotcomparación con matplotlib
Progreso0/17 (0%)

Seaborn: visualización declarativa

Al finalizar este tema

Comprenderá las diferencias entre la sintaxis declarativa de Seaborn y la de matplotlib, y podrá generar diagramas de caja, diagramas de recuento y mapas de calor con una sola línea de código.


Cuando matplotlib se vuelve engorroso

Para generar un gráfico de la "distribución salarial por departamento" con matplotlib, el código sería el siguiente:

python
import matplotlib.pyplot as plt
import numpy as np
departments = df['department'].unique()
positions = range(len(departments))
fig, ax = plt.subplots()
for i, dept in enumerate(departments):
salaries = df[df['department'] == dept]['salary']
ax.boxplot(salaries, positions=[i], widths=0.6)
ax.set_xticks(positions)
ax.set_xticklabels(departments)
ax.set_ylabel('salario')
ax.set_title('Distribución salarial por departamento')
plt.show()

Itera sobre los datos para separarlos, calcular las posiciones y asignar las etiquetas directamente. El mismo gráfico con Seaborn:

python
import seaborn as sns
sns.boxplot(data=df, x='department', y='salary')
plt.show()

Son dos líneas. Solo indica "qué mostrar" y Seaborn se encarga del resto. Esta es la sintaxis declarativa.


Imperativo vs. Declarativo

matplotlib (imperativo)Seaborn (declarativo)
PerspectivaInstrucciones paso a paso de "cómo graficar"Declaración de "qué mostrar"
Separación de datosBucles/filtrado manualAutomático (x, y, hue)
Color/leyendaEspecificación manualGeneración automática
PersonalizaciónMuy detalladaMayormente automática; los detalles se ajustan con matplotlib

Seaborn es una biblioteca construida sobre matplotlib. Crea gráficos visualmente atractivos rápidamente con la configuración predeterminada y, cuando se requiere un ajuste fino, se utiliza matplotlib.


Los 5 gráficos clave

1. Distribución — histplot

python
sns.histplot(data=df, x='salary', bins=20, kde=True)

Al agregar kde=True, las curvas de estimación de densidad (suaves) se superponen en el gráfico.

2. Distribución por categoría — diagrama de caja

python
sns.boxplot(data=df, x='department', y='salary')

Visualiza la mediana, los cuartiles y los valores atípicos de forma rápida. Es especialmente útil para comparar las diferencias salariales entre departamentos.

3. Conteo — countplot

python
sns.countplot(data=df, x='department', hue='gender')

Muestra la frecuencia de cada categoría mediante barras. Si se añaden subcategorías, como el género, con hue, se mostrarán diferenciadas por color.

4. Relación — gráfico de dispersión

python
sns.scatterplot(data=df, x='experience', y='salary', hue='department')

Representa la relación entre dos variables numéricas mediante puntos. Permite visualizar fácilmente si existe una relación proporcional entre los años de experiencia y el salario.

5. Correlación — mapa de calor

python
corr = df[['salary', 'experience', 'age']].corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', vmin=-1, vmax=1)

Utilice annot=True para mostrar los valores numéricos y cmap para especificar la paleta de colores. Las correlaciones positivas (rojo) y negativas (azul) se diferencian mediante el color.


hue: tercera variable

Esta es la función más potente de Seaborn:

python
# Sin hue — gráfico de dispersión total
sns.scatterplot(data=df, x='experience', y='salary')
# Con hue — separación de color por departamento
sns.scatterplot(data=df, x='experience', y='salary', hue='department')

hue codifica la tercera variable mediante el color. Para lograr esto con matplotlib, es necesario recorrer un bucle y asignar los colores de forma explícita. Con Seaborn, basta con una sola palabra.


Configuración del estilo

python
# Cambiar estilo completo
sns.set_theme(style='whitegrid')
# Cambiar paleta
sns.set_palette('Set2')
# En un gráfico individual
sns.boxplot(data=df, x='dept', y='salary', palette='pastel')

Opciones de estilo:

  • darkgrid — Valor predeterminado: fondo gris con cuadrícula
  • whitegrid — Fondo blanco con cuadrícula
  • dark — Fondo gris sin cuadrícula
  • white — Fondo blanco minimalista
  • ticks — Solo marcas en los ejes

Combinación de Seaborn y matplotlib

python
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
sns.boxplot(data=df, x='dept', y='salary', ax=axes[0])
axes[0].set_title('Salario por departamento')
sns.histplot(data=df, x='salary', bins=20, ax=axes[1])
axes[1].set_title('Distribución salarial general')
plt.tight_layout()
plt.show()

ax Se pueden insertar gráficos de Seaborn en los ejes de matplotlib mediante parámetros. La práctica común es usar matplotlib para el diseño y Seaborn para el contenido del gráfico.


Aspectos clave

Seaborn es una biblioteca de visualización que dibuja automáticamente lo que se especifica, es decir, "qué mostrar". hue Codificar una tercera variable mediante el color con una sola palabra: esta es la principal ventaja de Seaborn. Para una exploración rápida, use Seaborn; para ajustes finos, use matplotlib. Es fundamental saber cómo usar ambas herramientas.

💬 Preguntas y comentarios

0 comentarios

Puedes publicar sin iniciar sesión. Los comentarios de invitados no pueden editarse ni eliminarse después.

0/2000

Cargando...