Comment trier les barres dans un graphique à barres ggplot2
Par défaut, ggplot2 classe les barres d’un graphique à barres dans l’ordre suivant :
- Les variables factorielles sont classées par niveaux de facteurs.
- Les variables de caractères sont classées par ordre alphabétique.
Cependant, vous pourriez souvent être intéressé à commander les barres dans un autre ordre spécifique.
Ce didacticiel explique comment procéder à l’aide du bloc de données suivant :
#create data frame df <- data.frame(team = c('B', 'B', 'B', 'A', 'A', 'C'), points = c(12, 28, 19, 22, 32, 45), rebounds = c(5, 7, 7, 12, 11, 4)) #view structure of data frame str(df) 'data.frame': 6 obs. of 3 variables: $ team : Factor w/ 3 levels "A","B","C": 2 2 2 1 1 3 $ points : num 12 28 19 22 32 45 $ rebounds: num 5 7 7 12 11 4
Exemple 1 : Ordonner les barres en fonction d’un ordre de facteur spécifique
Si nous essayons de créer un graphique à barres pour afficher la fréquence par équipe, les barres apparaîtront automatiquement par ordre alphabétique :
library(ggplot2) ggplot(df, aes(x=team)) + geom_bar()
Le code suivant montre comment trier les barres selon un ordre spécifique :
#specify factor level order df$team = factor(df$team, levels = c('C', 'A', 'B')) #create bar chart again ggplot(df, aes(x=team)) + geom_bar()
Exemple 2 : ordonner les barres en fonction de la valeur numérique
Nous pouvons également trier les barres en fonction de valeurs numériques. Par exemple, le code suivant montre comment classer les barres de la fréquence la plus grande à la plus petite à l’aide de la fonction reorder() :
library(ggplot2) ggplot(df, aes(x=reorder(team, team, function(x)-length(x)))) + geom_bar()
Nous pouvons également trier les barres de la fréquence la plus petite à la plus grande en supprimant le signe moins dans l’appel function() dans la fonction reorder() :
library(ggplot2) ggplot(df, aes(x=reorder(team, team, function(x) length(x)))) + geom_bar()
Ressources additionnelles
Documentation pour la fonction geom_bar() .
Documentation pour la fonction reorder() .
Une liste complète des tutoriels R sur la statologie.