如何在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
相关产品推荐
相关产品推荐

