我试图获得一条必须准确的闭合曲线 通过所有点(如下所示)并尝试使用R从图中获取样本100等距点。可以连接第一个和最后一个点以获得闭合曲线。
这是一个设定点
X Y
-0.04494395 -0.051481617
-0.01102178 -0.032550217
0.01193315 -0.072318417
0.04585535 -0.053448067
0.07975850 -0.034595817
0.05682070 0.005183833
0.03377230 0.045034983
0.01057130 0.085048283
-0.02335468 0.066181283
-0.05729975 0.047296183
-0.03407970 0.007294283
-0.06801145 -0.011644717
我想使用样条拟合(不是回归)。在这方面有人能帮助我吗? 这是迄今为止尝试的内容
d=splinefun(x, y,method = c("natural"))
我坚持到这里:如何从这个功能获得100个等距点?
答案 0 :(得分:3)
也许这会让你开始。 xspline
函数允许创建闭合样条 - 尽管我不确定如何控制插值点的数量。 This answer演示了xspline
函数的使用。
df <- read.table(text="
x y
-0.04494395 -0.051481617
-0.01102178 -0.032550217
0.01193315 -0.072318417
0.04585535 -0.053448067
0.07975850 -0.034595817
0.05682070 0.005183833
0.03377230 0.045034983
0.01057130 0.085048283
-0.02335468 0.066181283
-0.05729975 0.047296183
-0.03407970 0.007294283
-0.06801145 -0.011644717
",
header=TRUE
)
plot(y ~ x, df)
spl <- xspline(df$x, df$y, open=FALSE, shape = -0.5, draw=FALSE)
lines(spl)
答案 1 :(得分:0)
将形成超过100分,但我认为这符合您的目标:
df <- read.table(text="
x y
-0.04494395 -0.051481617
-0.01102178 -0.032550217
0.01193315 -0.072318417
0.04585535 -0.053448067
0.07975850 -0.034595817
0.05682070 0.005183833
0.03377230 0.045034983
0.01057130 0.085048283
-0.02335468 0.066181283
-0.05729975 0.047296183
-0.03407970 0.007294283
-0.06801145 -0.011644717
",
header=TRUE
)
xy<-xspline(df$x,df$y,draw = F,shape = -0.5,open = F)
xy
plot(xy$x,xy$y)
xspline(df$x,df$y,open = F,shape = -0.5)