【发布时间】:2015-08-11 20:38:34
【问题描述】:
我用一个简单的循环制作了这些:
for(i in 1:ngroups){
x[paste0("Group_",i)] = apply(x[,group == i],1,mean)
}
plot(x$Group_1,type="l",ylim=c(0,300))
for(i in 2:ngroups){
lines(x[paste0("Group_",i)],col=i)
}
我也可以使用matplot 制作这个情节。现在,如您所见,每个组都是其他几列的平均值。我想做的是像上图一样绘制系列,但另外显示有助于该平均值的基础数据的范围。例如,紫色线将以浅紫色阴影区域为界。在任何给定的时间索引,紫色区域将从紫色组中的最低值延伸到最高值(或者说,5 到 95 个百分位数)。有没有一种优雅/聪明的方法来做到这一点?
【问题讨论】:
-
我不确定我是否理解你的代码,但你看过
ggplot2::geom_smooth()吗? -
我相信 geom_smooth 是为了添加一个平均值——它可能是创建我上面的情节版本的好方法,但我认为它不能用来在行。
-
我认为
geom_smooth正是你要找的,看看这里的最后一个情节:docs.ggplot2.org/0.9.3.1/geom_smooth.html -
您需要 stat_summary 来绘制 CI。这里有足够的信息。 docs.ggplot2.org/current/stat_summary.html 。您对 stat_sum_df("mean_cl_normal", geom = "smooth") 感兴趣,但您可以看到 stat_summary 可以处理很多任务
-
@MatiasAndina 经验分位数与参数置信区间不同,mean_cl_boot 可能更接近