使用ggplot2绘制样条函数

时间:2015-10-31 07:05:55

标签: r plot ggplot2

我想用ggplot2绘制样条函数。当我使用它时:

library(ggplot2)

spline_x <- 1:6
spline_y <- c(0, 0.5, 2, 2, 0.5, 0)
spl_fun <- splinefun(spline_x, spline_y)

p <- ggplot()
p + stat_function(fun = spl_fun) + xlim(min(spline_x), max(spline_x)) + ylim(min(spline_y), max(spline_y))

我得到一个空的情节。 plot()也是如此:

plot(spl_fun,
     xlim = c(min(spline_x), max(spline_x)),
     ylim = c(min(spline_y) - 1, max(spline_y) + 1)
    )

顺便说一句,如何将stat_function分成多行?如果我只是输入换行符(例如在plot()示例中),它(当然)会在调用stat_function后停止评估,并且不再考虑x / ylim。

1 个答案:

答案 0 :(得分:3)

您没有给ggplot任何内容,也没有传递给函数的值。尝试:

library(ggplot2)

spline_x <- 1:6
spline_y <- c(0, 0.5, 2, 2, 0.5, 0)
spl_fun <- splinefun(spline_x, spline_y)

p <- ggplot(data.frame(x=spline_x, y=spline_y), aes(x, y))
p <- p + stat_function(fun = spl_fun)
p

enter image description here

p <- p + xlim(min(spline_x), max(spline_x))
p <- p + ylim(min(spline_y), max(spline_y))
p

enter image description here

在即将发布的新ggplot2(通过devtools安装)中,您可以在我的(也即将发布的)geom_xspline包中使用ggalt {1}}函数(根据参数产生类似的结果):

geom_xspline

enter image description here