R 从用户定义的点绘制平滑图
我想画一个平滑的图形,只指定一些点。下图为一个示例: 我想提出以下几点:R 从用户定义的点绘制平滑图,r,graph,R,Graph,我想画一个平滑的图形,只指定一些点。下图为一个示例: 我想提出以下几点: x <- c(7, 8, 9, 11, 12, 13, 16, 17, 18) y <- c(0.05, 0.95, 0.3, 0.3, 0.7, 0.3, 0.3, 0.95, 0.2) x对于10个数据点,您可以添加一个9阶多项式来获得类似的结果。通过使用ggplot2中的geom_smooth,可以通过以下方式将其直接拟合到数据中 x <- c(7, 8, 9, 11, 12, 13, 16,
x <- c(7, 8, 9, 11, 12, 13, 16, 17, 18)
y <- c(0.05, 0.95, 0.3, 0.3, 0.7, 0.3, 0.3, 0.95, 0.2)
x对于10个数据点,您可以添加一个9阶多项式来获得类似的结果。通过使用ggplot2中的geom_smooth
,可以通过以下方式将其直接拟合到数据中
x <- c(7, 8, 9, 11, 12, 13, 16, 17, 18)
y <- c(0.05, 0.95, 0.3, 0.3, 0.7, 0.3, 0.3, 0.95, 0.2)
df <- data.frame(x,y)
library(ggplot2)
ggplot(df, aes(x,y)) +
geom_point() +
stat_smooth(method="lm",
formula=y ~ poly(x, 9, raw=TRUE),
colour="red")
x这样做的一个好方法是使用样条函数。这不仅会给你曲线,而且会给你一个函数来估计任意x的y
SF = splinefun(x,y)
curve(SF, xlim=c(7,18))
points(x,y, pch=16, col="red")