如何在不使用ggalt库的前提下对R语言ggplot的折线进行平滑处理
你可以通过叠加geom_smooth()图层实现平滑曲线的绘制需求,可按需选择是否保留原始折线。
完整可运行代码
1. 仅绘制平滑曲线
library(ggplot2) # 构造数据框 df <- data.frame( posting_year = c(2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016), value = c(492, 523, 507, 66, 58, 641, 226, 990, 555, 481) ) # 绘图 ggplot(df, aes(x=posting_year , y=value)) + geom_smooth(se = FALSE, span = 0.7)
2. 原始折线+平滑曲线叠加显示
ggplot(df, aes(x=posting_year , y=value)) + geom_line(color = "darkgray") + geom_smooth(se = FALSE, color = "darkblue", span = 0.7)
参数说明
se = FALSE:关闭平滑曲线默认附带的置信区间阴影,匹配你预期的纯曲线效果span:控制平滑程度,取值范围0-1,数值越小曲线越贴近原始数据的波动,数值越大曲线越平滑,可根据实际展示需求调整- 小样本量下
geom_smooth()默认使用loess局部加权回归拟合,你也可以手动添加method = "loess"参数明确指定拟合方法。
内容的提问来源于stack exchange,提问作者Mohd Syazwan
相关产品推荐
相关产品推荐

