源起

源起于统计之都论坛 帖子,轩哥给出了一个完美方案,我潜水学习了一下,下面把学习的成果分享出来。

geom_smooth 支持哪些平滑手段,样条回归,常见样条有哪些,举一个常用的样条例子详加介绍

可以用 spline() 造一个插值的方法给 ggplot。

myspline <- function(formula, data, ...)
{
  dat = model.frame(formula, data)
  res = splinefun(dat[[2]], dat[[1]])
  class(res) = "myspline"
  res
}

predict.myspline <- function(object, newdata, ...)
{
  object(newdata[[1]])
}

library(ggplot2)
set.seed(123)
dat = data.frame(xx = runif(100, -5, 5))
dat$yy = sin(dat$xx)

ggplot(dat, aes(x = xx, y = yy)) +
  geom_point() +
  geom_smooth(method = myspline, se = FALSE)

spline-in-ggplot