seaborn
seaborn construye gráficos estadísticos sobre matplotlib con APIs de datos ordenados (tidy-data) - ideal para análisis exploratorio rápido y valores predeterminados pulidos.
Busca en todas las páginas de la documentación
seaborn construye gráficos estadísticos sobre matplotlib con APIs de datos ordenados (tidy-data) - ideal para análisis exploratorio rápido y valores predeterminados pulidos.
Tarjeta de referencia rápida - lista para copiar y pegar.
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
sns.set_theme(style="whitegrid", context="notebook")
df = pd.read_csv("sales.csv", parse_dates=["ordered_at"])
g = sns.relplot(data=df, x="ordered_at", y="revenue", hue="region", kind="line")
g.set_axis_labels("Fecha", "Ingresos ($)")
plt.close()Cuándo usar esto:
col, row)import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
rng = np.random.default_rng(42)
df = pd.DataFrame(
{
"region": np.repeat(["East", "West"], 200),
"segment": np.tile(np.repeat(["SMB", "Enterprise"], 100), 2),
"revenue": rng.normal(150, 40, 400).clip(10),
}
)
sns.set_theme(style="ticks")
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
sns.histplot(data=df, x="revenue", hue="region", kde=True, ax=axes[0])
axes[0].set_title("Distribución")
sns.boxplot(data=df, x="segment", y="revenue", hue="region", ax=axes[1])
axes[1].set_title("Por segmento")
sns.barplot(
data=df,
x="region",
y="revenue",
estimator="median",
errorbar=("pi", 50),
ax=axes[2],
)
axes[2].set_title("Mediana con intervalo")
sns.despine()
fig.tight_layout()
fig.savefig("eda.png", dpi=150, bbox_inches="tight")
plt.close(fig)Lo que esto demuestra:
data= ordenada en tres tipos de gráficoshistplot con superposición KDE opcionalboxplot con hue para una segunda categoríaerrorbar moderna en lugar del obsoleto cirelplot, catplot, displot) devuelven FacetGrid.scatterplot, barplot) aceptan ax= para subgráficos.| Pregunta | Función |
|---|---|
| Tendencia a lo largo del tiempo | lineplot / relplot(kind="line") |
| Comparación de categorías | barplot, boxplot, violinplot |
| Distribución | histplot, kdeplot, ecdfplot |
| Relación | scatterplot, regplot |
import seaborn as sns
# Cargar conjunto de datos de ejemplo para enseñanza
tips = sns.load_dataset("tips") # caché de CSV incluido
# Paleta accesible para lectores daltónicos
sns.set_palette("colorblind")melt o arreglar el esquema de origen.ci= obsoleto - eliminado en seaborn 0.13+. Solución: usar errorbar=("ci", 95) o None.plt.close en relplot - las APIs a nivel de figura crean nuevas figuras silenciosamente. Solución: capturar el valor de retorno y plt.close().hue categórico enorme - leyendas ilegibles. Solución: filtrar top-N o usar facetas en lugar de hue.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
pandas .plot | Gráficos rápidos mínimos | Necesidad de valores predeterminados de CI estadístico |
| Plotly express | Exploración interactiva | Pipeline de impresión estática |
| Altair | Exportación declarativa a Vega-Lite | Necesidad de ajustes de píxeles de matplotlib |
| matplotlib crudo | Control total de artistas | Boilerplate estadístico repetitivo |
melt de forma ancha.sns.relplot(data=df, x="x", y="y", col="region", row="segment", kind="scatter")sns.lineplot(data=df, x="t", y="v", errorbar=None)ax=.g = sns.relplot(...)
g.savefig("out.png", dpi=150)colorblind o Set2 para categorías.viridis) para valores continuos.sns.regplot(data=df, x="ad_spend", y="revenue").to_pandas() para graficar, a menos que se usen rutas nativas de alt/plotly.order = df.groupby("region")["revenue"].median().sort_values().index
sns.barplot(data=df, x="region", y="revenue", order=order)countplot para recuentos de filas.Versiones del Stack: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.
Revisado por Chris St. John·Última actualización: 16 jul 2026