我想用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。
答案 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
p <- p + xlim(min(spline_x), max(spline_x))
p <- p + ylim(min(spline_y), max(spline_y))
p
在即将发布的新ggplot2(通过devtools安装)中,您可以在我的(也即将发布的)geom_xspline
包中使用ggalt
{1}}函数(根据参数产生类似的结果):
geom_xspline