我想根据特定列中给出的值为ggplot2 facet图的背景着色.使用我已经问过的先前问题的答案,我能够将我需要的东西拼凑在一起.@joran对这个问题的回答特别有用,因为它说明了创建一个单独的数据框以传递给ggplot的技术.
这一切都很好,给出了如下图所示的输出:

这是我用来生成上图的代码:
# User-defined variables go here
list_of_names <- c('aa','bb','cc','dd','ee','ff')
list_of_regions <- c('europe','north america','europe','asia','asia','japan')
# Libraries
require(ggplot2)
require(reshape)
# Create random data with meaningless column names
set.seed(123)
myrows <- 30
mydf <- data.frame(date = seq(as.Date('2012-01-01'), by = "day", length.out = myrows),
aa = runif(myrows, min=1, max=2),
bb = runif(myrows, min=1, max=2),
cc = runif(myrows, min=1, max=2),
dd = runif(myrows, min=1, max=2),
ee = runif(myrows, min=1, max=2),
ff = runif(myrows, min=1, max=2))
# Transform data frame from …Run Code Online (Sandbox Code Playgroud) 我希望有人能帮我解决这个问题.数据可以在这里找到.
基本上我想绘制一条直线(平均值)和它测试的4个模型的相关置信区间(下限,上限).我想面对Cat_Auth变量,其中有4个类别(所以4个图).第一个"模型"实际上只是样本数据的平均值,我不想要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)
Run Code Online (Sandbox Code Playgroud)
但我想为每个型号设置不同的彩色线条和阴影色带(例如,红色平均线和红色阴影色带用于模型2,绿色用于模型3等).另外,我无法弄清楚为什么对应于第一组平均值的蓝线原样是脱节的.
真的很感激任何帮助!