You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在ggplot2中绘制置信边界以更清晰展示置信区间?

补充代码实现置信区间边界线绘制

没问题,我来帮你调整代码,让置信区间的边界线清晰显示出来。核心思路是先计算出置信区间的上下限,再用geom_line把这两条边界线画出来,和已有的回归线、预测区间虚线搭配,就能达到你想要的效果啦。

修改后的完整代码如下:

library(ggplot2)
# 准备数据
x <- Allele <- c(4,4,5,5,5,7,9,11,11,11,13,14,15,15,16,17,17,19,19,19)
y <- SR <- c(5.5,5.6,5.7,6,6.1,8,8,12,12.1,13,14,14,16,16.5,17,17, 17.1,18,19,20)
D3S <- data.frame(Allele, SR)

# 拟合线性模型
Mod <- lm(SR ~ Allele)

# 同时计算置信区间和预测区间的上下限
conf.int <- predict(Mod, interval = "confidence")
pred.int <- predict(Mod, interval = "prediction")
# 合并所有数据到同一个数据框,并重命名预测区间列避免冲突
mydata <- cbind(D3S, conf.int, pred.int[, c("lwr", "upr")])
colnames(mydata)[5:6] <- c("pred_lwr", "pred_upr")

# 绘制图形
p <- ggplot(mydata, aes(Allele, SR)) +
  geom_point(size=3) +
  # 回归线+置信区间填充(默认灰色)
  stat_smooth(method = lm, color="black", fill = "grey80") +
  # 添加置信区间的边界线,用比填充色深的灰色区分
  geom_line(aes(y = lwr), color = "grey50", size=0.6) +
  geom_line(aes(y = upr), color = "grey50", size=0.6) +
  # 添加预测区间的虚线
  geom_line(aes(y = pred_lwr), color = "black", linetype = "dashed", size=0.8) +
  geom_line(aes(y = pred_upr), color = "black", linetype = "dashed", size=0.8) +
  # 调整主题,去掉多余边框和网格
  theme_bw() +
  theme(panel.border = element_blank(), 
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        axis.line = element_line(colour = "black"))

p

代码说明:

  • 新增conf.int计算置信区间上下限,合并数据时重命名预测区间列,避免列名冲突。
  • geom_line画出置信区间的边界线,选择比填充色深的灰色(grey50),既和填充区域呼应,又能让边界线清晰可见。
  • 保留了你原本的预测区间虚线和回归线设置,整体视觉风格和示例图一致。

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

火山引擎 最新活动