GGPLOT: Comment Changer les Etiquettes des Facettes



GGPLOT: Comment Changer les Etiquettes des Facettes

Cet article décrit comment changer facilement les étiquettes des facettes d’un ggplot.



Sommaire:

Livre Apparenté

GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans R

Prérequis

Charger les packages requis et définir la fonction thème theme_light() [ggplot2] comme thème par défaut:

library(ggplot2)
theme_set(
  theme_light() + theme(legend.position = "top")
  )

GGPlot basique avec facette

Créer un box plot rempli par groupes:

# Charger les données et convertir `dose` en une variable de type facteur
data("ToothGrowth")
ToothGrowth$dose <- as.factor(ToothGrowth$dose)

# Box plot, facette en fonction des variables `dose`  et `supp`
p <- ggplot(ToothGrowth, aes(x = dose, y = len)) + 
  geom_boxplot(aes(fill = supp), position = position_dodge(0.9)) +
  scale_fill_viridis_d() 
p + facet_grid(dose ~ supp)

Modifier le texte des étiquettes des facettes

Les étiquettes des facettes peuvent être modifiées à l’aide de l’option labeller, qui doit être une fonction.

  • Dans le code R suivant, les facettes sont étiquetées en combinant le nom de la variable de groupement avec les niveaux de groupe. La fonction label_both est utilisée.
p + facet_grid(dose ~ supp, labeller = label_both)

  • Une façon simple de modifier le texte d’une étiquette de facette est de fournir de nouvelles étiquettes sous forme de vecteur de caractère nommé:
# Nouveaux noms d'étiquettes des facettes pour la variable `dose`
dose.labs <- c("D0.5", "D1", "D2")
names(dose.labs) <- c("0.5", "1", "2")

# Nouveaux noms d'étiquettes des facettes pour la variable `supp`
supp.labs <- c("Orange Juice", "Vitamin C")
names(supp.labs) <- c("OJ", "VC")

# Créer le graphique
p + facet_grid(
  dose ~ supp, 
  labeller = labeller(dose = dose.labs, supp = supp.labs)
  )

  • Une solution alternative pour changer les étiquettes des facettes est de modifier les données:
df <- ToothGrowth
# Modifier les données
df$dose <- factor(df$dose, levels = c("0.5", "1", "2"), 
                  labels = c("D0.5", "D1", "D2"))
df$supp <- factor(df$supp, levels = c("OJ", "VC"),
                  labels = c("Orange Juice", "Vitamin C")
                  )
# Créer le graphique
ggplot(df, aes(x = dose, y = len)) + 
  geom_boxplot(aes(fill = supp)) +
  facet_grid(dose ~ supp)

Personnaliser l’apparence des étiquettes des facettes

# Changer la police du texte des facettes. Valeurs possibles pour le style de police:
  #'plain', 'italic', 'bold', 'bold.italic'.
p + facet_grid(dose ~ supp)+
    theme(
      strip.text.x = element_text(
        size = 12, color = "red", face = "bold.italic"
        ),
      strip.text.y = element_text(
        size = 12, color = "red", face = "bold.italic"
        )
      )

Changer la couleur de fond de la facette

Le rectangle autour des étiquettes à facettes peut être modifié à l’aide de la fonction element_rect().

p + facet_grid(dose ~ supp)+
 theme(
   strip.background = element_rect(
     color="black", fill="#FC4E07", size=1.5, linetype="solid"
     )
   )



Version: English





No Comments

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments