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

如何在ggplot中为geom_line添加来自pred数据框的95%置信区间

问题

我尝试用ggplot把模型拟合结果和数据点放在同一张图里,但没法把计算好的95%置信区间(pred$conf.low、pred$conf.high)加到模型拟合线(pred$predicted)上。

我用glmmTMB拟合了模型,再用ggpredict生成包含预测值和置信区间的pred数据框,当前能正常运行的绘图代码是:

ggplot(data = toad2, aes(x = DO, y = num)) + 
  geom_point(color='blue') +
  geom_line(color='red',data = pred, aes(x=x, y=predicted)) 

我尝试了下面的代码,却出现"Ignoring unknown aesthetics: ymin and ymax"的警告,没法成功添加置信区间:

ggplot(data = toad2, aes(x = DO, y = num)) + 
  geom_point(color='blue') +
  geom_line(color='red',data = pred, aes(x=x, y=predicted, ymin = conf.low, ymax = conf.high)) 

相关数据与模型代码:

> head(toad2,5)
    num   DO
753   0 8.41
755   0 8.27
756   0 8.31
757   0 8.04
758   0 7.77

> str(toad2)
'data.frame':   640 obs. of  2 variables:
 $ num: int  0 0 0 0 0 0 0 0 0 0 ...
 $ DO : num  8.41 8.27 8.31 8.04 7.77 7.43 7.54 7.37 7.33 6.75 ...
 - attr(*, "na.action")= 'omit' Named int [1:1005] 1 2 3 4 5 6 7 8 9 10 ...
  ..- attr(*, "names")= chr [1:1005] "1" "2" "3" "4" ...

fit <- glmmTMB(num ~ DO, family=nbinom2, ziformula = ~0, dispformula = ~1, toad2, REML = FALSE)

pred <- ggpredict(fit, terms = "DO")

解决方法

问题出在geom_line不支持ymin和ymax这两个美学参数,它们是给绘制置信区间填充带的geom_ribbon设计的。正确做法是分开用geom_ribbon画置信区间带,再用geom_line画拟合线,代码如下:

ggplot(data = toad2, aes(x = DO, y = num)) + 
  geom_point(color='blue') +
  # 绘制置信区间填充带,设置透明度避免遮挡
  geom_ribbon(data = pred, aes(x = x, ymin = conf.low, ymax = conf.high), 
              fill = "red", alpha = 0.2) +
  # 绘制模型拟合线
  geom_line(data = pred, aes(x = x, y = predicted), color='red')

补充说明

  • 图层顺序:先画置信区间带,再画拟合线,最后保留数据点在最上层,这样数据点不会被遮挡。
  • 若不想用填充带,只想画置信区间的上下虚线,可以用两条geom_line分别绘制上下限:
ggplot(data = toad2, aes(x = DO, y = num)) + 
  geom_point(color='blue') +
  geom_line(data = pred, aes(x = x, y = predicted), color='red') +
  geom_line(data = pred, aes(x = x, y = conf.low), color='red', linetype = "dashed") +
  geom_line(data = pred, aes(x = x, y = conf.high), color='red', linetype = "dashed")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:30:45