由于您复制了数据,并且想要绘制平均值/ CL,因此您最好使用专门用于(您猜对了)数据汇总的stat_summary(...)
。基本上,它将函数应用于每个x值的所有y值(例如,mean(...)
函数),然后使用您指定的任何几何图形绘制结果。这里有一个例子:
# sample data - should be provided in question
set.seed(1) # for reproducible example
time <- 1:25
df <- data.frame(time,
pop=rnorm(100*length(time), mean=10*time/(25+time)))
library(ggplot2)
ggplot(df, aes(x=time, y=pop))+
stat_summary(geom="ribbon", fun.data=mean_cl_normal, width=0.1, conf.int=0.95, fill="lightblue")+
stat_summary(geom="line", fun.y=mean, linetype="dashed")+
stat_summary(geom="point", fun.y=mean, color="red")
![](https://i.stack.imgur.com/VzaDp.png)
所以在这里,我们有3层:即总结了使用mean(...)
功能使用geom="line"
y值,和绘图层,汇总方式相同,但地块的一层使用geom="point"
以及使用geom="ribbon"
的图层这个几何图形需要ymin
和ymax
美学,所以我们使用内置的ggplot函数mean_cl_normal
来生成那些基于错误是正态分布的假设,因此,平均值遵循t -分配。输入?hmisc
以获取有关置信限制有用的各种功能的文档。图层按照代码的顺序进行渲染,因此,因为您需要着色,所以我们需要首先放置错误功能区。
最后,当然可以使用dplyr
或其他类似的方法自己总结数据,但我真的不明白这一点。
更新(根据最近的评论): 看起来像最新版本的ggplot2
(2.0.0)的指定参数fun.data
不同的方式。这部作品在新的版本:
ggplot(df, aes(x=time, y=pop))+
stat_summary(geom="ribbon", fun.data=mean_cl_normal,
fun.args=list(conf.int=0.95), fill="lightblue")+
stat_summary(geom="line", fun.y=mean, linetype="dashed")+
stat_summary(geom="point", fun.y=mean, color="red")
与width=...
观点的问题是一个比较微妙的,我认为:它实际上是没有必要(在我用误差条原来的答案,忘了删除这个说法当我将它改为功能区时)。旧版本的ggplot2忽略了无关的参数(因此没有错误)。显然,新版本更为严格。可能这是更好的。
你应该检查这里:http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/ – AntoniosK
看看'?stat_smooth'。 – Jaap
由于你是(相对)新的SO,请阅读[this](http://stackoverflow.com/help/mcve)和[this](http://stackoverflow.com/questions/5963269/how-to - 制作一个很好的可重现的例子/ 5963610#5963610)关于如何提出一个精心制作的问题,这个问题更可能得到解答。 – jlhoward