6

当我添加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

传说是阴天。

点的 alpha 延续到图例(使颜色难以查看),但这个问题表明您可以使用以下命令覆盖图例详细信息guides

magic <- guides(colour = guide_legend(override.aes = list(alpha = 1))) 
gg + magic

它是固定的!

凉爽的。但是当我投入时stat_smooth,魔法停止工作。

gg + stat_smooth(method = "lm")

线是实心的,但点的 alpha 较低。

gg + stat_smooth(method = "lm") + magic

我不知道这里发生了什么。

我怎样才能解决这个问题?我宁愿得到图例的以下结果(白色背景、线条和点,带有。(如果你使用而不是alpha = 1,问题似乎消失了)geom_linestat_smooth

gg + geom_line(alpha = 1/10) + magic

嗯。

4

1 回答 1

3

如果您想获得仅带有线和点且没有背景的图例键,则可以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"))

在此处输入图像描述

于 2013-10-22T09:44:23.393 回答