【问题标题】:How to vary line and ribbon colours in a facet_grid如何在 facet_grid 中改变线条和色带颜色
【发布时间】:2017-06-14 16:54:17
【问题描述】:

我希望有人可以帮助解决我遇到的这个绘图问题。数据可以在here找到。

基本上,我想为我测试过的 4 个模型绘制一条线(平均值)及其相关的置信区间(下、上)。我想对有 4 个类别(所以 4 个图)的 Cat_Auth 变量进行分面。第一个“模型”实际上只是样本数据的平均值,我不想要 CI(数据中指定的 NA 值 - 不确定这是否正确)。

我可以通过以下方式获得情节:

newdata <- read.csv("data.csv", header=T)
ggplot(newdata, aes(x = Affil_Max, y = Mean)) + 
  geom_line(data = newdata, aes(), colour = "blue") +
  geom_ribbon(data = newdata, alpha = .5, aes(ymin = Lower, ymax = Upper, group = Model, fill = Model)) +
  facet_grid(.~ Cat_Auth)

但我希望每个模型都有不同颜色的线条和阴影色带(例如,模型 2 的红色平均线和红色阴影带,模型 3 的绿色等)。另外,我不明白为什么对应于第一组平均值的蓝线是不相交的。

非常感谢您的帮助!

【问题讨论】:

  • 您需要在数据中添加一列来处理不同的颜色:stackoverflow.com/questions/19167944/…。您也可以使用颜色矢量到达那里。我无法对您的示例进行任何测试。
  • 无法下载数据。需要密码。
  • 您可能只需要在您的aes(colour = Model, group = Model) 中添加geom_line,并且首先应将模型转换为因子。

标签: r ggplot2


【解决方案1】:

试试这个:

library(dplyr)
library(ggplot2)

newdata %>%
  mutate(Model = as.factor(Model)) %>%
  ggplot(aes(Affil_Max, Mean)) + 
    geom_line(aes(color = Model, group = Model)) +
    geom_ribbon(alpha = .5, aes(ymin = Lower, ymax = Upper, 
                                group = Model, fill = Model)) +
    facet_grid(. ~ Cat_Auth)

【讨论】:

  • 谢谢。这工作得很好 - 但我将如何更改功能区的填充颜色?我已经弄清楚如何通过添加:scale_color_manual(values=c("black", "blue", "red", "green")) 来更改线条颜色,并且我想将色带填充颜色与线条颜色相匹配。
猜你喜欢
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 2019-07-24
  • 2012-01-23
  • 2018-08-25
  • 1970-01-01
相关资源
最近更新 更多