Comment modifier l’espacement entre les éléments de légende dans ggplot2
Vous pouvez utiliser les méthodes suivantes pour modifier l’espacement entre les éléments de légende dans ggplot2 :
Méthode 1 : modifier l’espacement horizontal
p +
theme(legend.spacing.x = unit(1, 'cm'))
Méthode 2 : modifier l’espacement vertical
p +
theme(legend.spacing.y = unit(1, 'cm')) +
guides(fill = guide_legend(byrow = TRUE))
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant :
#create data frame df <- data.frame(team=c('Mavs', 'Heat', 'Nets', 'Lakers', 'Suns', 'Cavs'), points=c(24, 20, 34, 39, 28, 29), assists=c(5, 7, 6, 9, 12, 13)) #view data frame df team points assists 1 Mavs 24 5 2 Heat 20 7 3 Nets 34 6 4 Lakers 39 9 5 Suns 28 12 6 Cavs 29 13
Exemple 1 : modifier l’espacement horizontal entre les éléments de légende
Le code suivant montre comment créer un nuage de points dans ggplot2 avec une légende horizontale avec un espacement par défaut :
library(ggplot2)
#create scatterplot with default spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
geom_point(size=3) +
theme(legend.position='bottom')
Pour augmenter l’espacement horizontal entre les éléments de la légende, nous pouvons utiliser l’argument legend.spacing.x :
library(ggplot2)
#create scatterplot with increased horizontal spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
geom_point(size=3) +
theme(legend.position='bottom',
legend.spacing.x = unit(1, 'cm'))
Notez que l’espacement horizontal entre les éléments de la légende a augmenté.
Plus la valeur que vous utilisez dans la fonction unit() est grande, plus l’espacement sera grand entre les éléments.
Exemple 2 : modifier l’espacement vertical entre les éléments de légende
Le code suivant montre comment créer un nuage de points dans ggplot2 avec une légende verticale avec un espacement par défaut :
library(ggplot2)
#create scatterplot with default spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
geom_point(size=3)
Pour augmenter l’espacement vertical entre les éléments de la légende, nous pouvons utiliser l’argument legend.spacing.y :
library(ggplot2)
#create scatterplot with increased vertical spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
geom_point(size=3) +
theme(legend.spacing.y = unit(1, 'cm')) +
guides(fill = guide_legend(byrow = TRUE))
Notez que l’espacement vertical entre les éléments de la légende a augmenté.
Plus la valeur que vous utilisez dans la fonction unit() est grande, plus l’espacement sera grand entre les éléments.
Remarque : Il faut inclure la dernière ligne qui utilise l’argument byrow = TRUE , sinon les éléments de la légende ne seront pas espacés comme prévu.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans ggplot2 :
Comment changer le titre de la légende dans ggplot2
Comment changer la taille de la légende dans ggplot2
Comment changer la position de la légende dans ggplot2