Cuando los datos tienen múltiples variables, no basta con ver medias o desviaciones. Es clave visualizar relaciones para detectar patrones, tendencias y correlaciones.
Un pairplot (diagrama de pares) muestra:
import seaborn as sns
import matplotlib.pyplot as plt
# Dataset clásico
titanic = sns.load_dataset("titanic")
# Pairplot con variables seleccionadas
sns.pairplot(titanic, vars=['age', 'fare', 'pclass'], hue='survived', markers=["o", "s"])
plt.show()
👉 Interpretación:
El scatterplot muestra relación entre dos variables. Podemos añadir una recta de regresión para ver tendencia.
import seaborn as sns
import matplotlib.pyplot as plt
titanic = sns.load_dataset("titanic")
# Relación entre tarifa y edad
sns.scatterplot(x="age", y="fare", data=titanic, hue="class", alpha=0.7)
plt.title("Edad vs Tarifa (Titanic)")
plt.show()
# Con línea de tendencia
sns.lmplot(x="age", y="fare", data=titanic, hue="class", lowess=True, height=5, aspect=1.2)
plt.title("Edad vs Tarifa con tendencia suavizada")
plt.show()
👉 Aquí lowess=True
aplica una regresión suavizada no lineal, útil en relaciones curvas.
lowess=True
requiere la librería statsmodels
. Si no la tienes instalada, puedes añadirla a tu entorno con el comando: pip install statsmodels
.
Los mapas de calor (heatmaps) permiten visualizar rápidamente correlaciones entre variables numéricas.
import seaborn as sns
import matplotlib.pyplot as plt
titanic = sns.load_dataset("titanic")
# Seleccionar solo columnas numéricas relevantes
titanic_corr = titanic[["age", "fare", "sibsp", "parch", "survived"]].corr()
plt.figure(figsize=(6,5))
sns.heatmap(titanic_corr, annot=True, cmap="viridis", center=0, fmt=".2f")
plt.title("Mapa de calor de correlaciones - Titanic")
plt.show()
👉 Observaciones típicas:
fare
(tarifa) correlaciona con la clase socioeconómica y la supervivencia.sibsp
(hermanos/esposos a bordo) y parch
(padres/hijos a bordo) tienen correlación moderada.