HOWTO · Seaborn

Agregar etiquetas de eje a la gráfica de Seaborn

Establezca las etiquetas de los ejes x e y en gráficos de Seaborn con los métodos de Axes o Matplotlib pyplot, y personalice su apariencia.

En esta página

Para agregar o cambiar las etiquetas de los ejes de un gráfico de Seaborn, llama a set_xlabel() y set_ylabel() en el objeto Axes de Matplotlib que devuelve la función de trazado. Seaborn suele obtener las etiquetas predeterminadas de las variables asignadas a x e y, aunque estas dependen del tipo de gráfico y de sus datos. Define las etiquetas explícitamente cuando necesites nombres claros para quienes leen el gráfico.

Usar Axes.set_xlabel() y Axes.set_ylabel()

Este método se aplica a los ejes concretos que devuelve Seaborn, por lo que resulta claro cuando una figura contiene más de un gráfico. El ejemplo usa un conjunto de datos pequeño guardado en memoria e imprime las etiquetas después de asignarlas.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns

days = ["Mon", "Tue", "Wed"]
orders = [12, 18, 15]
ax = sns.lineplot(x=days, y=orders, marker="o")
ax.set_xlabel("Day", fontsize=12)
ax.set_ylabel("Orders", fontsize=12)
print(ax.get_xlabel(), "|", ax.get_ylabel())
plt.close()

Gráfico de líneas de Seaborn con etiquetas de eje Day y Orders

fontsize y color son propiedades de texto útiles para cambiar la apariencia de las etiquetas; por ejemplo, pasa color="navy" a cualquiera de los dos métodos. Estas llamadas cambian las etiquetas de los ejes; el título se configura por separado con ax.set_title("Orders by day"). Si las etiquetas de las marcas se amontonan, gíralas con ax.tick_params(axis="x", labelrotation=45) o amplía la figura con fig, ax = plt.subplots(figsize=(8, 4)) antes de crear el gráfico en esos ejes.

Establecer ambas etiquetas con Axes.set()

Usa set() para asignar las dos etiquetas al mismo objeto Axes. Sus argumentos con nombre xlabel y ylabel permiten hacer ambos cambios a la vez; guarda los ejes devueltos en una variable para que el objeto al que se aplican quede claro.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns

months = ["Jan", "Feb", "Mar"]
visitors = [120, 145, 138]
ax = sns.lineplot(x=months, y=visitors, marker="o")
ax.set(xlabel="Month", ylabel="Visitors")
print(ax.get_xlabel(), "|", ax.get_ylabel())
plt.close()

Gráfico de líneas de Seaborn con etiquetas de eje Month y Visitors

Establecer las etiquetas con matplotlib.pyplot.xlabel() y matplotlib.pyplot.ylabel()

Las funciones matplotlib.pyplot.xlabel() y matplotlib.pyplot.ylabel() son prácticas en un script sencillo que trabaja con unos únicos ejes actuales. Actúan sobre los ejes actuales de pyplot, así que, si la figura contiene varios gráficos, selecciona primero los ejes que quieras modificar. El ejemplo activa los ejes de Seaborn antes de asignarles las etiquetas.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns

products = ["A", "B", "C"]
sales = [8, 13, 10]
ax = sns.barplot(x=products, y=sales)
plt.sca(ax)
plt.xlabel("Product", fontsize=12)
plt.ylabel("Sales", fontsize=12)
print(ax.get_xlabel(), "|", ax.get_ylabel())
plt.close()

Gráfico de barras de Seaborn con etiquetas de eje Product y Sales

Para un solo gráfico, cualquiera de las dos API permite asignar etiquetas. Prefiere los métodos de Axes cuando ya tengas el objeto del gráfico o gestiones varios ejes. Usa pyplot cuando su modelo de ejes actuales encaje con el resto del código. Para añadir líneas de cuadrícula, llama a ax.grid(True) en los ejes correspondientes.