Comment créer une légende manuelle dans ggplot2 (avec exemples)



Souvent, vous souhaiterez peut-être ajouter une légende manuelle à un tracé dans ggplot2 avec des couleurs, des étiquettes, un titre personnalisés, etc.

Heureusement, c’est simple à faire en utilisant la fonction scale_color_manual() et l’exemple suivant montre comment procéder.

Exemple : créer une légende manuelle dans ggplot2

Le code suivant montre comment tracer trois droites de régression ajustées dans un tracé dans ggplot2 avec une légende manuelle personnalisée :

library(ggplot2)

#create data frame
df <- data.frame(x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
  geom_point() +
  geom_smooth(se=FALSE, aes(color='Linear')) +
  geom_smooth(formula=y~poly(x, 2), se=FALSE, aes(color='Quadratic')) +
  geom_smooth(formula=y~poly(x, 3), se=FALSE, aes(color='Cubic')) +
  scale_color_manual(name='Regression Model',
                     breaks=c('Linear', 'Quadratic', 'Cubic'),
                     values=c('Cubic'='pink', 'Quadratic'='blue', 'Linear'='purple'))

Grâce à la fonction scale_color_manual() , nous avons pu spécifier les aspects suivants de la légende :

  • name : Le titre de la légende
  • pauses : Les étiquettes dans la légende
  • valeurs : Les couleurs dans la légende

Notez que nous pouvons également utiliser la fonction theme() pour modifier la taille de la police des éléments de la légende :

library(ggplot2)

#create data frame
df <- data.frame(x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
  geom_point() +
  geom_smooth(se=FALSE, aes(color='Linear')) +
  geom_smooth(formula=y~poly(x, 2), se=FALSE, aes(color='Quadratic')) +
  geom_smooth(formula=y~poly(x, 3), se=FALSE, aes(color='Cubic')) +
  scale_color_manual(name='Regression Model',
                     breaks=c('Linear', 'Quadratic', 'Cubic'),
                     values=c('Cubic'='pink', 'Quadratic'='blue', 'Linear'='purple'))+
 theme(legend.title=element_text(size=20),
       legend.text=element_text(size=14))

Notez que la taille de la police du titre et des étiquettes de la légende a été augmentée.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans ggplot2 :

Comment changer la position de la légende dans ggplot2
Comment changer la taille de la légende dans ggplot2
Comment changer le titre de la légende dans ggplot2
Comment changer les étiquettes de légende dans ggplot2

Ajouter un commentaire

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