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