【问题标题】:ggplot2: multiple colours in stat_summaryggplot2:stat_summary 中的多种颜色
【发布时间】:2014-10-29 18:12:26
【问题描述】:

我有一个情节,我在其中显示来自多个主题的各个值,按组着色。此外还有每组的平均值,使用 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("black", "blue") 不起作用。

我已经按照here 的说明尝试了 scale_colour_manual,但这会改变各个数据线的颜色,而不影响平均线。

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

【问题讨论】:

    标签: r colors plot ggplot2


    【解决方案1】:

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

    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)。
    • 你能解释一下aes(color=paste("mean", Role), group=Role)背后的逻辑为什么需要包含"mean"吗?
    • @TylerRuddenfort 为手段使用不同的颜色,并在图例中单独显示手段。
    猜你喜欢
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 2022-12-10
    • 2022-10-16
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多