Comment utiliser facet_wrap dans R (avec exemples)
La fonction facet_wrap() peut être utilisée pour produire des tracés multi-panneaux dans ggplot2.
Cette fonction utilise la syntaxe de base suivante :
library(ggplot2) ggplot(df, aes(x_var, y_var)) + geom_point() + facet_wrap(vars(category_var))
Les exemples suivants montrent comment utiliser cette fonction avec l’ensemble de données mpg intégré dans R :
#view first six rows of mpg dataset
head(mpg)
manufacturer model displ year cyl trans drv cty hwy fl class
audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
audi a4 2.0 2008 4 auto(av) f 21 30 p compact
audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
audi a4 2.8 1999 6 manual(m5) f 18 26 p compact
Exemple 1 : fonction de base facet_wrap()
Le code suivant montre comment créer plusieurs nuages de points dans ggplot2 en utilisant displ comme variable d’axe x, hwy comme variable d’axe y et class comme variable de regroupement :
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(class))
Exemple 2 : utiliser des étiquettes personnalisées
Le code suivant montre comment utiliser la fonction facet_wrap() avec des étiquettes personnalisées pour les titres des tracés :
#define custom labels
plot_names <- c('2seater' = "2 Seater",
'compact' = "Compact Vehicle",
'midsize' = "Midsize Vehicle",
'minivan' = "Minivan",
'pickup' = "Pickup Truck",
'subcompact' = "Subcompact Vehicle",
'suv' = "Sport Utility Vehicle")
#use facet_wrap with custom plot labels
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(class), labeller = as_labeller(plot_names))
Exemple 3 : utiliser des échelles personnalisées
Le code suivant montre comment utiliser la fonction facet_wrap() avec des échelles personnalisées pour chaque tracé individuel :
#use facet_wrap with custom scales
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(class), scales='free')
Exemple 4 : Utiliser une commande personnalisée
Le code suivant montre comment utiliser la fonction facet_wrap() avec un ordre personnalisé pour les tracés individuels :
#define order for plots
mpg <- within(mpg, class <- factor(class, levels=c('compact', '2seater', 'suv',
'subcompact', 'pickup',
'minivan', 'midsize')))
#use facet_wrap with custom order
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(class))
Notez que les tracés apparaissent dans l’ordre exact que nous avons spécifié.
Ressources additionnelles
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