Rotar las etiquetas de marca del eje de los gráficos de Seaborn

Manav Narula 30 enero 2023
  1. Utilice la función set_xticklabels() para rotar etiquetas en ejes Seaborn
  2. Utilice la función xticks() para rotar etiquetas en ejes Seaborn
  3. Utilice la función setp() para rotar etiquetas en ejes Seaborn
Rotar las etiquetas de marca del eje de los gráficos de Seaborn

Seaborn ofrece muchas personalizaciones para la figura final. Una personalización tan pequeña pero esencial es que podemos controlar las etiquetas de tick en ambos ejes.

Por ejemplo, preste atención al problema con el siguiente gráfico.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)

seaborn rotar etiquetas 1

En el código anterior, trazamos un gráfico para los datos de series de tiempo del precio de un producto. Como puede ver, las fechas completas se trazan en el eje x. Debido a esto, todo se superpone y es difícil de leer.

Para tales situaciones, podemos rotar las etiquetas de marca en el eje.

En este tutorial, aprenderemos cómo rotar dichas etiquetas de tick en parcelas nacidas en el mar.

Utilice la función set_xticklabels() para rotar etiquetas en ejes Seaborn

La función set_xticklabels() establece los valores para las etiquetas de tick en el eje x. Podemos usarlo para rotar las etiquetas. Sin embargo, esta función necesita algunos valores de etiqueta para usar la función get_xticklabels() que devuelve las etiquetas predeterminadas y las rota usando el parámetro rotation.

El siguiente código demuestra su uso.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
ax.set_xticklabels(ax.get_xticklabels(), rotation=30)

seaborn rotar etiquetas 2

Utilice la función xticks() para rotar etiquetas en ejes Seaborn

El parámetro rotation en la función matplotlib.pyplot.xticks() también puede lograr esto. No necesitamos pasar ninguna etiqueta y podemos usar directamente el parámetro en esta función.

Por ejemplo,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
plt.xticks(rotation=45)

seaborn rotar etiquetas 3

Utilice la función setp() para rotar etiquetas en ejes Seaborn

Dado que la mayoría de las gráficas nacidas en el mar devuelven un objeto matplotlib axes, podemos usar la función setp() de esta biblioteca. Tomaremos los valores de la etiqueta tick usando la función xtick() y los rotaremos usando el parámetro rotation de la función setp().

Consulte el siguiente código.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Date": [
            "01012019",
            "01022019",
            "01032019",
            "01042019",
            "01052019",
            "01062019",
            "01072019",
            "01082019",
        ],
        "Price": [77, 76, 68, 70, 78, 79, 74, 75],
    }
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")

plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
locs, labels = plt.xticks()
plt.setp(labels, rotation=45)

seaborn rotar etiquetas 4

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Seaborn Axis

Artículo relacionado - Seaborn Label