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

如何将流行病学SID模型ggplot折线图改为带状图?

将SID模型ggplot折线图改为带状图的实现方法

两种常见带状图的替换方案:


1. 填充式分组带状图(用geom_area)

适合展示各 compartment 随时间的数量分布,直接替换原代码的geom_line即可,可选择堆叠或分组展示:

ggplot(final_results_for_plotting) +
  # 替换geom_line为geom_area,新增fill映射控制填充色,保留colour做边框可选
  geom_area(aes(x = time, y = number, fill = compartment, colour = compartment),
            alpha = 0.7, # 调透明度避免遮挡
            position = "identity") # 取消堆叠,要堆叠就删掉这个参数
  labs(x = "Time (days)",
       y = "Number of individuals",
       fill = "Model compartment",
       colour = "Model compartment")

2. 带上下限的置信带状图(用geom_ribbon)

如果你的数据包含每个时间点的数量波动范围(比如模拟的置信区间,需数据框有lower和upper列),可以用这种方式,通常会叠加折线做参考:

ggplot(final_results_for_plotting) +
  # 先画带状区间,再叠折线
  geom_ribbon(aes(x = time, ymin = lower, ymax = upper, fill = compartment),
              alpha = 0.5) +
  geom_line(aes(x = time, y = number, colour = compartment)) +
  labs(x = "Time (days)",
       y = "Number of individuals",
       fill = "Model compartment",
       colour = "Model compartment")

核心调整说明

  • 用geom_area时:关键是在aes中添加fill映射,通过position控制是否堆叠,alpha调整填充透明度
  • 用geom_ribbon时:必须在aes中指定ymin和ymax,对应数据的上下限列
  • 原代码的标签部分只需补充fill对应的图例标签即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 13:41:00