我想删除图例周围的灰色矩形。我尝试了各种方法,但都没有。
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)
答案 0 :(得分:20)
你在图例键中获得了这种灰色,因为你使用stat_smooth()
默认情况下也会使用一些填充来围绕该行的置信区间(如果fill=
未在aes()
内使用,则为灰色})。
如果您不需要置信区间,一种解决方案是为se=FALSE
设置stat_smooth()
。
+stat_smooth(method = "loess", formula = y ~ x, level=0, size = 1,
aes(group = gender, colour=gender),se=FALSE)
另一个解决方案是使用函数guides()
和override.aes=
删除图例中的填充,但保持线条周围的置信区间。
+ guides(color=guide_legend(override.aes=list(fill=NA)))
答案 1 :(得分:16)
theme_set(theme_gray() + theme(legend.key=element_blank()))
如果您还想删除灰色背景:
theme_set(theme_bw() + theme(legend.key=element_blank()))
答案 2 :(得分:4)
+ theme(legend.background=element_blank())