# graficos-con-python
Gráficos con Python
Volver a la portada del cursoCaracterísticas Avanzadas de Seaborn
Sección 3 · Visualización con Seaborn
Características avanzadas de Seaborn
Cuando ya dominas los gráficos básicos de Seaborn, el siguiente nivel es aprovechar sus funciones de alto nivel: cuadrículas de gráficos, matrices de correlación y paletas pensadas para comunicar. Con ellas, análisis que en Matplotlib requerirían decenas de líneas se resuelven en una o dos.
Funciones de ejes y funciones de figura
Seaborn tiene dos familias de funciones. Las de ejes, como scatterplot, histplot o boxplot, dibujan sobre un único eje de Matplotlib y aceptan el parámetro ax, así que se integran en cualquier figura que tú construyas. Las de figura, como relplot, displot y catplot, crean su propia figura y pueden dividir los datos en varios paneles. Regla práctica: si necesitas controlar la disposición tú mismo, usa las de ejes; si quieres comparar grupos en paneles automáticamente, usa las de figura.
Facetas: un panel por grupo
Con los parámetros col y row de las funciones de figura, Seaborn dibuja un panel por cada valor de una variable. Comparar paneles lado a lado suele ser más claro que amontonar todos los grupos en un solo gráfico.
import matplotlib
matplotlib.use("Agg")
import seaborn as sns
from sklearn.datasets import load_iris
iris = load_iris(as_frame=True)
df = iris.frame.copy()
df.columns = ["sepal_largo", "sepal_ancho", "petalo_largo", "petalo_ancho", "target"]
df["especie"] = iris.target_names[iris.target]
g = sns.relplot(data=df, x="sepal_largo", y="petalo_largo", col="especie", height=3.5)
g.set_titles("{col_name}")
g.savefig("facetas.png", dpi=150)
Todas las relaciones de una vez: pairplot
pairplot dibuja una matriz con la dispersión de cada par de variables y la distribución de cada variable en la diagonal. Es una de las mejores primeras miradas a un conjunto de datos nuevo, porque muestra de golpe qué variables se relacionan.
import matplotlib
matplotlib.use("Agg")
import seaborn as sns
from sklearn.datasets import load_iris
iris = load_iris(as_frame=True)
df = iris.frame.copy()
df.columns = ["sepal_largo", "sepal_ancho", "petalo_largo", "petalo_ancho", "target"]
df["especie"] = iris.target_names[iris.target]
g = sns.pairplot(df.drop(columns="target"), hue="especie", height=2.2)
g.savefig("pairplot.png", dpi=120)
Mapas de calor para correlaciones
Un mapa de calor colorea cada celda de una matriz. Aplicado a la matriz de correlación, muestra qué variables se mueven juntas. Con annot=True se escribe el valor en cada celda, y una paleta divergente centrada en cero distingue las correlaciones positivas de las negativas.
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_iris
iris = load_iris(as_frame=True)
df = iris.frame.copy()
df.columns = ["sepal_largo", "sepal_ancho", "petalo_largo", "petalo_ancho", "target"]
corr = df.drop(columns="target").corr()
fig, ax = plt.subplots(figsize=(6, 5))
sns.heatmap(corr, annot=True, fmt=".2f", cmap="coolwarm", vmin=-1, vmax=1, ax=ax)
ax.set_title("Correlación entre medidas")
fig.tight_layout()
fig.savefig("correlacion.png", dpi=150)
Paletas con intención
Seaborn ofrece paletas cualitativas para categorías sin orden (como "Set2"), secuenciales para magnitudes (como "viridis") y divergentes para valores con un centro (como "coolwarm"). Elegir el tipo correcto evita sugerir un orden que no existe o esconder el punto medio de los datos.
Errores comunes
- Pasar
ax=a una función de figura comorelplot: no lo acepta, porque crea su propia figura. - Usar una paleta secuencial para categorías sin orden, lo que sugiere una jerarquía falsa.
- Calcular correlaciones incluyendo columnas de texto o identificadores; filtra antes solo las numéricas relevantes.
- Generar un pairplot con decenas de columnas: la matriz se vuelve ilegible y lenta.
Cierre
Facetas, pairplot, mapas de calor y paletas bien elegidas te permiten explorar un conjunto de datos completo en minutos. Con esta base estadística, el siguiente paso es la interactividad: Plotly.