Comment changer l’ordre des facettes dans ggplot2 (avec exemple)
Vous pouvez utiliser la syntaxe de base suivante pour spécifier l’ordre des facettes dans ggplot2 :
p +
facet_grid(~factor(my_variable, levels=c('val1', 'val2', 'val3', ...)))
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : modifier l’ordre des facettes dans ggplot2
Supposons que nous ayons le bloc de données suivant dans R :
#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
points=c(8, 14, 20, 22, 25, 29, 30, 31),
assists=c(10, 5, 5, 3, 8, 6, 9, 12))
#view data frame
df
team points assists
1 A 8 10
2 A 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12
Le code suivant montre comment utiliser facet_grid() pour créer une grille qui affiche un nuage de points de passes décisives par rapport aux points pour chaque équipe :
library(ggplot2)
#create multiple scatter plots using facet_grid
ggplot(df, aes(assists, points)) +
geom_point() +
facet_grid(.~team)
Par défaut, ggplot2 place les nuages de points dans l’ordre en fonction des valeurs qui apparaissent en premier dans la variable d’équipe du bloc de données.
Cependant, nous pouvons convertir team en variable factorielle et utiliser l’argument niveaux pour spécifier l’ordre dans lequel les équipes doivent être placées dans l’intrigue :
library(ggplot2)
#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes(assists, points)) +
geom_point() +
facet_grid(~factor(team, levels=c('C', 'D', 'A', 'B')))
Notez que les nuages de points sont désormais classés en fonction de l’ordre que nous avons spécifié dans l’argument niveaux : C, D, A, B.
L’avantage d’utiliser cette approche est que nous ne modifions pas réellement les données sous-jacentes.
Au lieu de cela, nous modifions uniquement les niveaux dans la fonction facet_grid() .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans ggplot2 :
Comment changer la taille de la police dans ggplot2
Comment supprimer une légende dans ggplot2
Comment faire pivoter les étiquettes des axes dans ggplot2