如何修改R代码绘制带95%置信区间(均值)的雨云图?
修改雨云图以显示均值+95%置信区间误差棒
方案1:修改stat_halfeye参数直接显示均值与95%CI
通过调整stat_halfeye的核心参数,将默认的中位数替换为均值,同时指定95%置信区间:
ggplot(iris, aes(Species, Sepal.Width)) + ggdist::stat_halfeye( adjust = .5, width = .3, .width = 0.95, # 设置为95%置信区间 point_interval = "mean_qih", # 用均值替代中位数,区间对应95%CI point_size = 2 # 可调整均值点的大小 ) + ggdist::stat_dots( side = "left", dotsize = .4, justification = 1.05, binwidth = .1 )
关键修改说明:
.width = 0.95:将区间范围从原来的50%/100%改为95%置信区间point_interval = "mean_qih":指定中心统计量为均值,区间为基于t分布的95%置信区间
方案2:添加传统误差棒(点+上下短线)
如果需要更直观的误差棒样式,可以保留密度曲线和散点,用stat_summary单独绘制均值与95%CI:
ggplot(iris, aes(Species, Sepal.Width)) + # 保留左侧散点 ggdist::stat_dots( side = "left", dotsize = .4, justification = 1.05, binwidth = .1 ) + # 仅显示密度曲线,去掉默认的中位数和区间 ggdist::stat_halfeye( adjust = .5, width = .3, point_interval = NULL, fill = "lightgray" ) + # 添加均值点与95%置信区间误差棒 stat_summary( fun = mean, # 手动计算95%CI下限(基于t分布) fun.min = function(x) mean(x) - qt(0.975, df = length(x)-1) * sd(x)/sqrt(length(x)), # 手动计算95%CI上限 fun.max = function(x) mean(x) + qt(0.975, df = length(x)-1) * sd(x)/sqrt(length(x)), geom = "pointrange", color = "black", size = 1 )
关键修改说明:
stat_halfeye中设置point_interval = NULL,仅保留密度曲线部分stat_summary通过自定义函数计算均值和95%置信区间,用pointrangegeom绘制点+误差棒
内容的提问来源于stack exchange,提问作者user21215346
相关产品推荐
相关产品推荐

