删除ggplot2图例中的点透明度

时间:2013-11-04 09:40:06

标签: r ggplot2

在ggplot2中,geom_XXX中定义的透明度会反映在图例中。例如:

df <- data.frame(x=runif(10000),  z=ifelse(runif(10000) > 0.5, 'a', 'b')); df$y <- runif(10000); df$y[df$z == 'b'] <- cos(df$x[df$z == 'b']*10)
ggplot(df) + geom_point(aes(x, y, color=z), alpha=0.1)

给出以下结果:

what we have

由于这些点非常透明,因此很难在图例中看到它们。我想从图例中删除点透明度,以便图形如下所示:

what I want

这怎么可能?

1 个答案:

答案 0 :(得分:22)

您可以使用函数guides()override.aes=为图例条目设置Alpha值。

ggplot(df) + geom_point(aes(x, y, color=z), alpha=0.1)+
  guides(colour = guide_legend(override.aes = list(alpha=1)))