You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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%置信区间,用pointrange geom绘制点+误差棒

内容的提问来源于stack exchange,提问作者user21215346

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:13:25