Remove fill around legend key in ggplot

Hallo I would like to remove the gray rectangle around the legend. I tried various methods but no one worked.

ggtheme <- theme( axis.text.x = element_text(colour='black'), axis.text.y = element_text(colour='black'), panel.background = element_blank(), panel.grid.minor = element_blank(), panel.grid.major = element_blank(), panel.border = element_rect(colour='black', fill=NA), strip.background = element_blank(), legend.justification = c(0, 1), legend.position = c(0, 1), legend.background = element_rect(colour = NA), legend.key = element_rect(colour = "white", fill = NA), legend.title = element_blank() ) colors <- c("red", "blue") df <- data.frame(year = c(1:10), value = c(10:19), gender = rep(c("male","female"),each=5)) ggplot(df, aes(x = year, y = value)) + geom_point(aes(colour=gender)) + stat_smooth(method = "loess", formula = y ~ x, level=0, size = 1, aes(group = gender, colour=gender)) + ggtheme + scale_color_manual(values = colors) 
+14
r ggplot2
source share
3 answers

You get this gray color inside the legend keys because you use stat_smooth() , which by default also makes a confidence interval around the line with some filling (gray if fill= not used inside aes() ).

One solution is to set se=FALSE for stat_smooth() if you don't need confidence intervals.

  +stat_smooth(method = "loess", formula = y ~ x, level=0, size = 1, aes(group = gender, colour=gender),se=FALSE) 

Another solution is to use the guides() and override.aes= functions to remove the fill from the legend, but keep the confidence intervals around the lines.

  + guides(color=guide_legend(override.aes=list(fill=NA))) 
+18
source share
 theme_set(theme_gray() + theme(legend.key=element_blank())) 

If you want to also remove the gray background:

 theme_set(theme_bw() + theme(legend.key=element_blank())) 
+9
source share
 + theme(legend.background=element_blank()) 
-one
source share

All Articles