ggplot2:在stat_summary中使用多种颜色

3

我有一个情节,其中显示了来自多个主题的个别值,按组着色。另外还有每个组的均值,使用stat_summary计算。

我希望这两个平均值可以按组着色,但使用其他颜色而不是个别数据。这证明是困难的,至少在使用stat_summary时是如此。我有以下代码:

ggplot(data=dat, 
       aes(x=Round, y=DV, group=Subject, colour=T1)) + 
  geom_line() + geom_point() + theme_bw() +
  stat_summary(fun.y=mean, geom="line", size=1.5,
               linetype="dotted", color="black",
               aes(group=T1))

这会产生这个示例图表

stat_summary创建的均值颜色设置为黑色;否则,它将像单独的数据线一样是红色和蓝色。然而,不可能设置多种颜色-因此color=c("black", "blue")无效。

我已经尝试了如此处所解释的scale_colour_manual,但这将更改单个数据线的颜色,而不影响平均线。

有什么建议可以解决这个问题吗?代码和数据在这里

1个回答

6

您需要为颜色映射创建不同的值:

ggplot(data=iris, 
       aes(x=Sepal.Length, y=Sepal.Width, color=Species)) + 
  geom_line() + geom_point() + theme_bw() +
  stat_summary(fun.y=mean, geom="line", size=1.5,
               linetype="dotted", aes(color=paste("mean", Species)))

结果图

接下来可以使用 scale_color_manual 来获取特定的颜色。


谢谢!太棒了。为了记录(因为我又花了一点时间才明白),分组需要保持完整,所以 aes 是 aes(color=paste("mean", Role), group=Role)。 - simoncolumbus
你能解释一下 aes(color=paste("mean", Role), group=Role) 的逻辑吗?为什么需要包含 "mean" - Tyler Ruddenfort
1
@TylerRuddenfort 要为均值设置不同的颜色,并使均值在图例中单独显示。 - Roland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接