12

在 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)

给出以下结果:

我们有什么

由于这些点非常透明,因此在图例中几乎看不到。我想从图例中删除点透明度,以便图表如下所示:

我想要的是

这怎么可能?

4

1 回答 1

31

您可以使用函数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)))
于 2013-11-04T09:48:36.003 回答