170 votes

Existe-t-il un moyen de modifier l'espacement entre les éléments de légende dans ggplot2 ?

Existe-t-il un moyen de modifier l'espacement entre les éléments de légende dans ggplot2 ? J'ai actuellement

legend.position ="top" 

qui produit automatiquement une légende horizontale. Cependant, l'espacement des éléments est très proche et je me demande comment les espacer plus loin.

83voto

agstudy Points 55104

Je pense que la meilleure option est d'utiliser guide_legend dans guides :

p + guides(fill=guide_legend(
                 keywidth=0.1,
                 keyheight=0.1,
                 default.unit="inch")
      )

Notez l'utilisation de default.unit, pas besoin de charger le package grid.

48voto

user2568648 Points 1335

Une solution simple que j'utilise pour ajouter de l'espace dans les légendes horizontales, il suffit d'ajouter des espaces dans les étiquettes (voir extrait ci-dessous) :

  scale_fill_manual(values=c("red","blue","white"),
                    labels=c("Label of category 1          ",
                             "Label of category 2          ",
                             "Label of category 3"))

39voto

Pop Points 1800

Maintenant que opts est déprécié dans le paquet ggplot2, la fonction theme doit être utilisée à la place :

library(grid) # for unit()
... + theme(legend.key.height=unit(3,"line"))
... + theme(legend.key.width=unit(3,"line"))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X