Comment modifier l’ordre des barres dans Seaborn Barplot



Vous pouvez utiliser les méthodes suivantes pour modifier l’ordre des barres dans un tracé marin :

Méthode 1 : Trier les barres dans Barplot créées à partir de données brutes

sns.barplot(x='xvar', y='yvar', data=df, order=df.sort_values('yvar').xvar)

Méthode 2 : Trier les barres dans Barplot créées à partir de données agrégées

sns.barplot(x='xvar', y='yvar', data=df, order=df_agg['xvar']

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Exemple 1 : Trier les barres dans Barplot créé à partir de données brutes

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les ventes totales réalisées par divers employés d’une entreprise :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'employee': ['Andy', 'Bert', 'Chad', 'Doug', 'Eric', 'Frank'],
                   'sales': [22, 14, 9, 7, 29, 20]})

#view DataFrame
print(df)

  employee  sales
0     Andy     22
1     Bert     14
2     Chad      9
3     Doug      7
4     Eric     29
5    Frank     20

Nous pouvons utiliser la syntaxe suivante pour créer un barplot dans lequel les barres sont triées par ordre croissant en fonction de la valeur des ventes :

import seaborn as sns

#create barplot with bars sorted by sales values ascending
sns.barplot(x='employee', y='sales', data=df, order=df.sort_values('sales').employee)

Pour trier les barres par ordre décroissant, utilisez simplement ascending=False dans la fonction sort_values() :

import seaborn as sns

#create barplot with bars sorted by sales values descending
sns.barplot(x='employee', y='sales', data=df,
            order=df.sort_values('sales', ascending=False).employee)

Exemple 2 : Trier les barres dans Barplot créé à partir de données agrégées

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les ventes totales réalisées par divers employés d’une entreprise :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'employee': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   'sales': [24, 20, 25, 14, 19, 13, 30, 35, 28]})

#view DataFrame
print(df)

  employee  sales
0        A     24
1        A     20
2        A     25
3        B     14
4        B     19
5        B     13
6        C     30
7        C     35
8        C     28

Nous pouvons utiliser la syntaxe suivante pour calculer la valeur moyenne des ventes , regroupées par employé :

#calculate mean sales by employee
df_agg = df.groupby(['employee'])['sales'].mean().reset_index().sort_values('sales')

#view aggregated data
print(df_agg)

  employee      sales
1        B  15.333333
0        A  23.000000
2        C  31.000000

Nous pouvons ensuite utiliser la syntaxe suivante pour créer un barplot dans seaborn qui affiche les ventes moyennes par employé avec les barres affichées par ordre croissant :

import seaborn as sns

#create barplot with bars ordered in ascending order by mean sales
sns.barplot(x='employee', y='sales', data=df,
            order=df_agg['employee'], errorbar=('ci', False))

L’axe des X affiche le nom de l’employé et l’axe des Y affiche la valeur moyenne des ventes pour chaque employé.

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans seaborn :

Comment afficher les valeurs sur Seaborn Barplot
Comment créer un barplot groupé dans Seaborn
Comment définir la couleur des barres dans un barplot Seaborn

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *