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

调整ggplot中geom_ribbon等图层顺序,实现预期可视化效果

调整ggplot图层顺序实现预期效果

ggplot的图层渲染逻辑是按代码书写顺序叠加——先写的图层在最底层,后写的图层依次覆盖在上方。你当前的代码把geom_ribbon放在最后,导致它覆盖在了点和回归直线上面,所以看不到预期的层级效果。

只需要调整图层顺序,把geom_ribbon放在最开头,接着是回归直线geom_line,最后放数据点geom_point,就能实现「丝带在最底层、直线中间、点在最上层」的效果:

Rosy <- data.frame(
      times = c(15, 11, 9, 12, 5, 2, 3),
      day   = 1:7,
      yhat  = c(14.36, 12.29, 10.21, 8.14, 6.07, 4.00,  1.93),
      lwr   = c( 9.54,  8.5,   7.22, 5.47, 3.08, 0.22, -2.89),
      upr   = c(19.18, 16.07, 13.2, 10.82, 9.06, 7.78,  6.75))

ggplot(data = Rosy, aes(x=day)) +
  geom_ribbon( aes(ymin=lwr, ymax=upr), fill='salmon') +
  geom_line( aes(y=yhat)) +
  geom_point(aes(y=times))

如果觉得丝带的填充色太厚重,还可以给geom_ribbon加上alpha参数调整透明度(比如alpha=0.3),让下方的直线显示得更清晰:

ggplot(data = Rosy, aes(x=day)) +
  geom_ribbon( aes(ymin=lwr, ymax=upr), fill='salmon', alpha=0.3) +
  geom_line( aes(y=yhat)) +
  geom_point(aes(y=times))

内容的提问来源于stack exchange,提问作者khali-blinks

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:40:35