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

如何在ggplot折线图中手动添加标准误(SE)阴影区域?

解决ggplot中geom_ribbon添加标准误阴影报错的问题

错误原因

  • geom_ribbon参数传递错误:你在geom_ribbon里直接把数据框PEAPupilGrob放在第一个参数位置,不符合ggplot语法——全局数据已经在ggplot()中指定,geom层无需重复传递;若要单独传数据,需明确指定data=PEAPupilGrob。
  • ymin与ymax顺序颠倒:ymin必须是区间下限(更小值),ymax是区间上限(更大值),你写的ymin=predicted+std.error, ymax=predicted-std.error完全颠倒,导致ggplot无法识别有效区间直接报错。
  • 可选优化:你的数据框已包含conf.low和conf.high(置信区间上下限),如果要展示统计置信区间而非单纯标准误范围,直接用这两列更严谨。

修正后的代码(标准误阴影版本)

# 先定义数据框(确保变量名正确)
PEAPupilGrob <- data.frame(
   x = c(-0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8),
   predicted = c(0.68210177774552,0.824971306553031,
                 0.911923452641176,0.957884075392982,0.98037732841837,
                 0.990970636204506,0.995869238009664),
   std.error = c(0.38195580456581,0.22923983122453,
                 0.123053035742282,0.183476660090966,0.328809680207388,
                 0.488362992665536,0.651775655589864),
   conf.low = c(0.503706928219636,0.750465569524191,
                 0.890530388978947,0.940737822137466,0.963272013048915,
                 0.976820374876465,0.985337590318705),
   conf.high = c(0.819367367560485,0.880765628369274,
                 0.929466912178259,0.97022643270505,0.989602181967697,
                 0.996513543605265,0.998845128758168),
   group = as.factor(c("PupilAmp_SMC",
                           "PupilAmp_SMC","PupilAmp_SMC","PupilAmp_SMC",
                           "PupilAmp_SMC","PupilAmp_SMC","PupilAmp_SMC")),
   group_col = as.factor(c("PupilAmp_SMC",
                           "PupilAmp_SMC","PupilAmp_SMC","PupilAmp_SMC",
                           "PupilAmp_SMC","PupilAmp_SMC","PupilAmp_SMC"))
)

# 修正后的绘图代码
PupilPEA_SMC <- ggplot(PEAPupilGrob, aes(x= x, y=predicted))  +
                geom_line(color = "red", size = 2) + 
                ylim(.65,1.0) + 
                labs (y = "Likelihood of Post-Error Accuracy", x = "Single Trial Pupillary Amplitude") +
                # 修正:移除重复数据传递,调整ymin/ymax顺序
                geom_ribbon(aes(ymin=predicted - std.error, ymax= predicted + std.error), 
                            alpha=0.1, fill = "red", color = "black", linetype = "dotted") +
                theme_bw() +
                theme(text = element_text(size = 20))
PupilPEA_SMC

推荐版本(使用已有置信区间)

如果你的需求是展示统计置信区间,直接用数据框中已有的conf.low和conf.high更合适:

PupilPEA_SMC <- ggplot(PEAPupilGrob, aes(x= x, y=predicted))  +
                geom_line(color = "red", size = 2) + 
                ylim(.65,1.0) + 
                labs (y = "Likelihood of Post-Error Accuracy", x = "Single Trial Pupillary Amplitude") +
                geom_ribbon(aes(ymin=conf.low, ymax= conf.high), 
                            alpha=0.1, fill = "red", color = "black", linetype = "dotted") +
                theme_bw() +
                theme(text = element_text(size = 20))
PupilPEA_SMC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 10:35:03