2014-10-29 103 views
1

我有一个情节,其中我显示来自多个主题的单个值,按组显示。除此之外,每组使用stat_summary进行计算。ggplot2: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)) 

哪个产生这个example graph

由stat_summary创建的方法的颜色设置为黑色;否则它会像个别数据线一样是红色和蓝色。但是,不可能设置多种颜色 - 因此color = c(“黑色”,“蓝色”)不起作用。

我已经尝试了scale_colour_manual,解释为here,但这会改变各条数据线的颜色,使平均线不受影响。

任何建议如何解决这个问题?代码和数据here

回答

4

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

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

resulting plot

然后可以使用scale_color_manual来获得特定的颜色。

+0

谢谢!太精彩了。 为了记录(因为那花了我另一个时刻弄清楚),分组需要保持完整,所以aes是aes(color = paste(“mean”,Role),group = Role)。 – simoncolumbus 2014-10-29 18:42:37