从用户定义的点绘制平滑图

时间:2017-11-12 17:44:45

标签: r graph

我想绘制一个平滑的图形,只需指定一些点。一个例子如下图:

[desired 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)

如何估算缺失点,以便生成与图形相似的平滑图形?

2 个答案:

答案 0 :(得分:1)

执行此操作的好方法是使用样条函数。这不仅可以为您提供曲线,还可以为您提供估算任何x的y的函数。

SF = splinefun(x,y)
curve(SF, xlim=c(7,18))
points(x,y, pch=16, col="red")

Spline function

答案 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}}