您可以构造权重并调整范围,如下所示:
my.df1 <- my.df1[order(my.df1$x),] d <- diff(my.df1$x) my.df1$w <- c(max(d), d) + c(d, max(d))/2 ggplot(my.df1, aes(x, y)) + geom_point() + geom_smooth(method = "loess", aes(weight = w), span = 0.95) + geom_line(data = data.frame(x, y = sin(x)^2), color = "red")