我有一个简单的数据框,我正在尝试使用 ggplot2
进行组合线和点图 . 假设我的数据如下所示:
df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20),
group=c(rep("a",10),rep("b",10)))
而我正试图制作一个情节:
g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8))
g
结果看起来很好,有一个例外 . 它有一个额外的图例,显示我的 geom_point
图层的 alpha
.
如何保持图例显示组颜色,但不能显示我的alpha设置?
3 回答
可以在
ggplot
呼叫中设置或映射美学 .aes(...)
中定义的美学从数据映射,并创建图例 .美学也可以通过在
aes()
之外定义来设置为单个值 .在这种情况下,您似乎希望设置
alpha = 0.8
并映射colour = group
.去做这个,
将
alpha = 0.8
放在aes()
定义之外 .对于任何映射变量,您可以在相应的
scale_...
调用中使用guide = 'none'
来抑制图例的外观 . 例如 .这将返回相同的情节
编辑@Joran 's comment is spot-on, I' ve使我的答案更加全面
只需在不需要它的部分后添加
show.legend = F
代码即可 .对于旧版本的ggplot2(2012年底发布的0.9.2之前的版本),这个答案应该有效:
我用
colour_scale
尝试过这个并没有用 . 看来colour_scale_hue
项的作用类似于具有默认参数TRUE
的函数 . 我添加scale_colour_hue(legend=FALSE)
并且它有效 .我不确定ggplot中的所有色标项是否都是这种情况