HOWTO · Seaborn

Faire pivoter les étiquettes de coche de l'axe des parcelles Seaborn

Ce tutoriel montre comment faire pivoter les étiquettes de graduation sur l'axe des tracés marins en Python

Sur cette page

Seaborn propose de nombreuses personnalisations pour la figurine finale. L’une de ces personnalisations petites mais essentielles est que nous pouvons contrôler les étiquettes de graduation sur les deux axes.

Par exemple, faites attention au problème avec le graphique suivant.

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 faire pivoter les étiquettes 1

Dans le code ci-dessus, nous avons tracé un graphique pour les données de la série chronologique du prix d’un produit. Comme vous pouvez le voir, les dates entières sont tracées sur l’axe des x. Pour cette raison, tout se chevauche et est difficile à lire.

Pour de telles situations, nous pouvons faire pivoter les étiquettes de graduation sur l’axe.

Dans ce didacticiel, nous allons apprendre à faire pivoter de telles étiquettes de coche sur des parcelles marines.

Utilisez la fonction set_xticklabels() pour faire pivoter les étiquettes sur les axes Seaborn

La fonction set_xticklabels() définit les valeurs des étiquettes de graduation sur l’axe des x. Nous pouvons l’utiliser pour faire pivoter les étiquettes. Cependant, cette fonction a besoin de certaines valeurs d’étiquettes pour utiliser la fonction get_xticklabels() qui renvoie les étiquettes par défaut et les fait pivoter à l’aide du paramètre rotation.

Le code suivant montre son utilisation.

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 faire pivoter les étiquettes 2

Utilisez la fonction xticks() pour faire pivoter les étiquettes sur les axes Seaborn

Le paramètre rotation dans la fonction matplotlib.pyplot.xticks() peut également réaliser cela. Nous n’avons pas besoin de passer d’étiquettes et pouvons utiliser directement le paramètre dans cette fonction.

Par example,

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 faire pivoter les étiquettes 3

Utilisez la fonction setp() pour faire pivoter les étiquettes sur les axes Seaborn

Étant donné que la plupart des graphiques Seaborn renvoient un objet axes matplotlib, nous pouvons utiliser la fonction setp() de cette bibliothèque. Nous allons prendre les valeurs des étiquettes de graduation à l’aide de la fonction xtick() et les faire pivoter à l’aide du paramètre rotation de la fonction setp().

Voir le code suivant.

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 faire pivoter les étiquettes 4