首页 > 解决方案 > 在ggplot上绘制均值的置信区间

问题描述

我有 10 个不同的试验(每个试验都有自己的数据集)。我已经找到了从模型中获取的预测值,并使用预测值创建了一个新列。

我将每个试验的所有 x、y 和 predict.y 值限制在一个数据帧中rbind()

我想绘制具有相同 x 值(预测值)的所有 y 值的平均值,并使用 geom_ribbon 而不是误差线绘制置信区间。

我已经提到了这个链接:用 ggplot 绘制带有置信区间的平均值,但是,当我绘制stat_summary(geom="ribbon", fun.data=mean_cl_normal, fun.args=list(conf.int=0.95), fill="lightblue")ggplot 时,它没有绘制任何东西,但它也没有出现任何错误,所以我不确定出了什么问题。

是否有另一种方法可以使用不同的代码获得相同的结果?还是我限制值和数据集的方式有问题?

更多信息

这是合并的数据

y<dbl> x<dbl> predy<dbl>
0.300   83.69   0.3292044030        
0.312   83.69   0.3291121879        
0.324   83.69   0.3291012056        
0.330   83.69   0.3287549029        
0.330   83.61   0.3291187262        
0.335   83.57   0.3293862893        
0.334   83.36   0.3303592465        
0.329   82.79   0.3328754639        
0.324   82.55   0.3339801283        
0.323   82.92   0.3319657277        

当我使用代码时:

 ggplot(ASframe, aes(x=x, y=y))+
 stat_summary(geom="ribbon", fun.data=mean_cl_normal, fun.args=list(conf.int=0.95), fill="lightblue")+
  stat_summary(geom = "line", fun = mean, linetype = "dashed")+
  stat_summary(geom = "point", fun=mean, color= "red", alpha = I(0.5)) +
  ylim(-0.1, 0.6)

结果是:

使用 ggplot 代码显示的图

标签: rggplot2confidence-interval

解决方案


欢迎来到 SO。如果没有可重现的示例https://stackoverflow.com/help/minimal-reproducible-example,很难回答这个问题。我会尝试 geom_smooth 选项。这是一个使用 geom_smooth 绘制置信区间的可重现示例,希望能帮助您入门。

#plot for sepal length and petal length of setosa species
 ggplot(subset(iris, iris$Species=="setosa"),aes(Sepal.Length,Petal.Length))+
    geom_point(position="jitter")+
    geom_smooth()

推荐阅读