如何在smooth.spline()
散点图中使用ggplot2
方法?
如果我的数据位于名为data的数据框中,则包含两列x
和y
。
smooth.spline
将是sm <- smooth.spline(data$x, data$y)
。我相信我应该使用geom_line()
,sm$x
和sm$y
作为xy
坐标。但是,如何在同一图表上绘制完全不相关的散点图和线图?我怀疑它与aes()
有关,但我有点困惑。
答案 0 :(得分:1)
您可以在不同的geom中使用不同的数据(框架)并使用aes调用相关变量,或者您可以组合smooth.spline输出中的相关变量
# example data
set.seed(1)
dat <- data.frame(x = rnorm(20, 10,2))
dat$y <- dat$x^2 - 20*dat$x + rnorm(20,10,2)
# spline
s <- smooth.spline(dat)
# plot - combine the original x & y and the fitted values returned by
# smooth.spline into a data.frame
library(ggplot2)
ggplot(data.frame(x=s$data$x, y=s$data$y, xfit=s$x, yfit=s$y)) +
geom_point(aes(x,y)) + geom_line(aes(xfit, yfit))
# or you could use geom_smooth
ggplot(dat, aes(x , y)) + geom_point() + geom_smooth()