48 votes

Contrôle du niveau "alpha" dans une légende ggplot2

Dans ggplot2, comment puis-je faire en sorte que la légende ait un fond semi-transparent.

Le code suivant, donne un arrière-plan totalement transparent (et un contrôle de positionnement)

plot <- plot + theme(legend.position=c(1,1),legend.justification=c(1,1),
                       legend.direction="vertical",
                       legend.box="horizontal",
                       legend.box.just = c("top"), 
                       legend.background = element_rect(fill="transparent"))

Mais comment peut-on contrôler le niveau d'alpha, je ne crois pas que element_rect a cette capacité.

76voto

Didzis Elferts Points 29673

Vous pouvez contrôler la semi-transparence avec la fonction alpha() du paquet scales en fournissant la couleur et la valeur alpha. Cette fonction peut être utilisée dans element_rect() lorsque vous fournissez de la couleur pour fill= .

library(scales)    
p<-ggplot(iris,aes(Petal.Length,Petal.Width,color=Species))+geom_point()
p+theme(legend.position=c(1,1),legend.justification=c(1,1),
        legend.direction="vertical",
        legend.box="horizontal",
        legend.box.just = c("top"), 
        legend.background = element_rect(fill=alpha('blue', 0.4)))

enter image description here

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