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

如何在ggplot2散点图中绘制y值的上下边界线?

ggplot2散点图添加y值最大/最小边界线实现方法

你可以通过stat_summary()函数直接对x分箱计算y的极值,再拟合平滑边界线,和你现有geom_smooth的均值趋势线风格保持一致,完整实现代码如下:

library(ggplot2)
suaon <- mtcars
pla <- ggplot(data = suaon, mapping = aes(x = mpg, y = wt))
# 原有散点层
pla <- pla + geom_point(mapping = aes(color = factor(cyl)), size = 1.4)
# 原有均值拟合线
pla <- pla + geom_smooth(span = 0.4, method = "loess", se = FALSE,color = "red", size = 0.8)
# 新增最大值上边界线
pla <- pla + stat_summary(fun = max, geom = "smooth", span = 0.4, method = "loess", se = FALSE, color = "darkgreen", size = 0.8)
# 新增最小值下边界线
pla <- pla + stat_summary(fun = min, geom = "smooth", span = 0.4, method = "loess", se = FALSE, color = "darkgreen", size = 0.8)
pla <- pla + labs(x = "MPG", y = "WT", color = "气缸数")
pla

补充说明:

  • 代码中span和method参数和你原有均值拟合线参数一致,可根据需要调整平滑度
  • 若需要非平滑的折线式边界,将stat_summary的geom参数改为"line",删除method和span参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:24:03