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

ggplot2:如何绘制数值曲线及上下限间的填充区域

用ggplot绘制带填充置信区间的折线图

嘿,这个需求很容易实现——你只需要把geom_errorbar替换成ggplot2里的geom_ribbon函数就可以了,它专门用来绘制上下限之间的填充区域。

首先,先看修改后的完整代码:

df <- data.frame( 
  time = factor(c(1, 1, 2, 2)), 
  value = c(1, 5, 3, 4), 
  group = factor(c(1, 2, 1, 2)), 
  upper = c(1.1, 5.3, 3.3, 4.2), 
  lower = c(0.8, 4.6, 2.4, 3.6) 
)

library(ggplot2)

ggplot(df, aes(time, value, colour = group)) + 
  # 先画填充区域,这样折线会显示在上方
  geom_ribbon(aes(ymin = lower, ymax = upper, fill = group), alpha = 0.3) +
  geom_line(aes(group = group))

关键修改说明:

  • 替换geom_errorbar为geom_ribbon:这个函数的核心作用就是绘制由ymin和ymax定义的填充带,完美匹配你用lower和upper列定义区间的需求。
  • 添加fill = group映射:让不同组的填充区域颜色和折线颜色保持一致,视觉上更统一协调。
  • 设置alpha = 0.3:降低填充区域的透明度,这样即使不同组的填充带重叠,也不会完全遮挡彼此和下方的折线,可读性更好。
  • 调整图层顺序:把geom_ribbon放在geom_line之前,确保折线显示在填充区域的上方,避免被遮挡。

如果不想让填充颜色和折线颜色关联,也可以单独指定fill的固定颜色(比如fill = "grey"),或者自定义其他颜色映射,根据你的需求调整就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:31:16