我有我试图做一个组合线,并使用点情节简单的数据帧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
结果看起来很好,但有一个例外。 它显示了一个额外的传奇alpha
我geom_point
层。
我怎样才能保持显示组色彩的传说,而不是一个显示我的阿尔法设置?
美学可以设置或内映射 ggplot
电话。
- 内限定的审美
aes(...)
从数据映射 ,和图例创建。 - 一种审美也可以被设置到一个值,通过定义它外面
aes()
在这种情况下,似乎要设置 alpha = 0.8
和地图 colour = group
。
去做这个,
放置alpha = 0.8
外侧aes()
定义。
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 = 0.8)
g
对于任何映射变量可以通过使用剿图例的外观guide = 'none'
在适当的scale_...
呼叫。 例如。
g2 <- ggplot(df, aes(x = x, y = y, group = group)) +
geom_line(aes(colour = group)) +
geom_point(aes(colour = group, alpha = 0.8))
g2 + scale_alpha(guide = 'none')
它会返回一个相同的情节
编辑 @ Joran的评论是点上,我做了我的答案更全面
只需添加show.legend = F
,你不希望它之后的部分代码。
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), show.legend = F)
对于旧版本的GGPLOT2(版本0.9.2之前,在2012年年底发布),这个答案应该工作:
我想这与colour_scale
并没有奏效。 看来, colour_scale_hue
项目就像一个默认参数的函数TRUE
。 我加入scale_colour_hue(legend=FALSE)
和它的工作。
我不知道这是否是在ggplot所有颜色规模项目的情况下