当我添加时,我遇到了更改图例中我(彩色)点的alpha值的麻烦stat_smooth.
require(ggplot2)
set.seed(1052)
dx <- runif(2000,0,10)
dy <- dx * rep(c(1,-1), each = 1000) + rnorm(2000,0,1)
dcol <- rep(c(TRUE, FALSE), each = 1000)
dd <- data.frame(x = dx, y = dy, col = dcol)
gg <- ggplot(dd) + aes(x = x, y = y, colour = col) + geom_point(alpha = 1/5)
gg
Run Code Online (Sandbox Code Playgroud)

点的alpha值会延伸到图例(使颜色难以查看),但此问题表明您可以使用以下方式覆盖图例详细信息guides:
magic <- guides(colour = guide_legend(override.aes = list(alpha = 1)))
gg + magic
Run Code Online (Sandbox Code Playgroud)

凉.但是当我投入时stat_smooth,魔法停止工作.
gg + stat_smooth(method = "lm")
Run Code Online (Sandbox Code Playgroud)

gg + stat_smooth(method = "lm") + magic
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我宁愿有如下的结果图例(白色背景,线,点用alpha = 1.(这些问题似乎是,如果你使用的走开geom_line,而不是stat_smooth)
gg + geom_line(alpha = 1/10) + magic
Run Code Online (Sandbox Code Playgroud)

如果您想获得仅包含线和点且没有背景的图例键,那么您可以fill=NA在override.aes=- 这将删除由于stat_smooth()( se=TRUE) 置信区间而设置的图例键的灰色填充。然后使用theme()和legend.key=您可以将背景更改为白色。
ggplot(dd, aes(x = x, y = y, colour = col)) + geom_point(alpha = 1/5)+
stat_smooth(method = "lm")+
guides(colour = guide_legend(override.aes = list(alpha = 1,fill=NA))) +
theme(legend.key=element_rect(fill="white"))
Run Code Online (Sandbox Code Playgroud)
