我想绘制一个平滑的图形,只需指定一些点。一个例子如下图:
我想用以下几点来说明:
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)
如何估算缺失点,以便生成与图形相似的平滑图形?
答案 0 :(得分:1)
执行此操作的好方法是使用样条函数。这不仅可以为您提供曲线,还可以为您提供估算任何x的y的函数。
SF = splinefun(x,y)
curve(SF, xlim=c(7,18))
points(x,y, pch=16, col="red")
答案 1 :(得分:0)
对于10个数据点,您可以添加9阶多项式来获得类似的数据。这可以通过以下方式使用ggplot2中的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")
直接适合您的数据
{{1}}