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()

Ordonner les barres dans le graphique à barres ggplot2

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()

Ordonner les barres de la plus petite à la plus grande dans le graphique à barres ggplot2

Ressources additionnelles

Documentation pour la fonction geom_bar() .
Documentation pour la fonction reorder() .
Une liste complète des tutoriels R sur la statologie.

Ajouter un commentaire

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