Comment changer le titre de la légende dans ggplot2 (avec exemples)
Il existe deux manières simples de modifier le titre de la légende dans un graphique ggplot2 :
Méthode 1 : utiliser labs()
ggplot(data, aes(x=x_var, y=y_var, fill=fill_var)) +
geom_boxplot() +
labs(fill='Legend Title')
Méthode 2 : utilisez scale_fill_manual()
ggplot(data, aes(x=x_var, y=y_var, fill=fill_var)) + geom_boxplot() + scale_fill_manual('Legend Title', values=c('color1', 'color2'))
Ce didacticiel montre des exemples d’utilisation pratique de ces deux méthodes.
Méthode 1 : modifier le titre de la légende à l’aide de labs()
Le code suivant montre comment créer un boxplot groupé pour un ensemble de données donné :
library(ggplot2) #create dataset data <- data.frame(team=rep(c('A', 'B', 'C'), each=50), program=rep(c('low', 'high'), each=25), values=seq(1:150)+sample(1:100, 150, replace=TRUE)) #create boxplot ggplot(data, aes(x=team, y=values, fill=program)) + geom_boxplot()
Par défaut, ggplot2 utilise le nom de la variable dans l’ensemble de données comme titre de légende. Cependant, nous pouvons utiliser la fonction labs() pour le modifier facilement :
library(ggplot2) #create dataset data <- data.frame(team=rep(c('A', 'B', 'C'), each=50), program=rep(c('low', 'high'), each=25), values=seq(1:150)+sample(1:100, 150, replace=TRUE)) #create boxplot ggplot(data, aes(x=team, y=values, fill=program)) + geom_boxplot() + labs(fill='Program Type')
Nous pouvons également ajouter un saut de ligne dans le titre de la légende en plaçant \n là où nous souhaitons que la nouvelle ligne commence :
library(ggplot2) #create dataset data <- data.frame(team=rep(c('A', 'B', 'C'), each=50), program=rep(c('low', 'high'), each=25), values=seq(1:150)+sample(1:100, 150, replace=TRUE)) #create boxplot ggplot(data, aes(x=team, y=values, fill=program)) + geom_boxplot() + labs(fill='Program\nType')
Méthode 2 : modifier le titre de la légende à l’aide de scale_fill_manual()
Nous pouvons également utiliser la fonction scale_fill_manual() pour spécifier simultanément un titre de légende et un vecteur de valeurs de couleur à utiliser :
library(ggplot2) #create dataset data <- data.frame(team=rep(c('A', 'B', 'C'), each=50), program=rep(c('low', 'high'), each=25), values=seq(1:150)+sample(1:100, 150, replace=TRUE)) #create boxplot ggplot(data, aes(x=team, y=values, fill=program)) + geom_boxplot() + scale_fill_manual('Program Type', values=c('pink','blue'))
Notez que les valeurs des couleurs peuvent être des noms ou des codes de couleur hexadécimaux.
Ressources additionnelles
Un guide complet des meilleurs thèmes ggplot2
Le guide complet des titres ggplot2
Comment créer des tracés côte à côte dans ggplot2