如何在ggline绘图中添加所有组的整体趋势拟合线?
解决分组趋势图添加整体拟合线的问题
你需要在已有的分组年度趋势图上添加一条覆盖所有组的整体趋势拟合线,并让这条线位于分组线的上方,以下是实现方法:
修改后的代码
library("ggplot2") library("ggpubr") ggline(basal, "Years_", "Units", point.size = 2, size=1, shape = "Altitude", color = "Altitude") + # 添加整体趋势拟合线,置于顶层 geom_smooth(aes(x = Years_, y = Units, group = 1), method = "lm", # 可根据需求换成"loess"等其他拟合方法 color = "black", size = 1.5, # 加粗线条,更突出 se = FALSE) # 关闭置信区间阴影,若需要可设为TRUE
关键说明
group = 1:强制ggplot忽略分组变量,使用全部数据进行拟合- 图层优先级:ggplot的图层按代码顺序叠加,
geom_smooth在ggline之后添加,因此拟合线会自动显示在所有分组线和数据点的上方 - 可自定义参数:
method:选择拟合模型,线性趋势用"lm",非线性平滑趋势用"loess"color:设置拟合线颜色,推荐用深色(如黑色)区分分组线size:增大线条宽度,提升整体拟合线的视觉优先级se:控制是否显示置信区间阴影,默认开启(TRUE),不需要可设为FALSE
数据验证
你提供的样本数据可直接运行上述代码,生成的图表将包含各海拔组的趋势线,以及一条覆盖所有样本的黑色加粗整体拟合线,且整体线位于最上层。
内容的提问来源于stack exchange,提问作者DYtto
相关产品推荐
相关产品推荐

