gpt4 book ai didi

r - 使用 ggplot 绘制具有置信区间的均值

转载 作者:行者123 更新时间:2023-12-04 05:12:08 28 4
gpt4 key购买 nike

我有一些从模型中收集的数据。我想随时间绘制人口规模。我在每个时间步都有人口规模,有 100 次重复。我想绘制每个时间步的平均人口规模,以及 95% 的置信区间(如果可能,作为阴影)。

我没用过 ggplot前。到目前为止,我一直在使用 R 中的普通(基础)图。但我想看看ggplot看起来像。

这是我到目前为止所拥有的:

ggplot(data=model1, aes(x=steps., y= pop-size, col='blue')) + 
geom_line()

这绘制了所有点,看起来不错,但我不知道如何绘制均值并添加置信区间。

最佳答案

由于您已经复制了数据,并且想要绘制均值/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")



所以这里我们有 3 个层:一个使用 mean(...) 汇总 y 值的层。函数,并使用 geom="line" 绘图,一个以相同方式汇总但使用 geom="point" 绘图的图层,以及使用 geom="ribbon" 的图层这个 geom 需要 yminymax美学,所以我们使用内置的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 忽略了无关的参数(因此,没有错误)。显然,新版本更加严格。可能这样更好。

关于r - 使用 ggplot 绘制具有置信区间的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32669473/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com