R 拟合闭合曲线,然后从该曲线绘制等距点
我试图得到一条闭合曲线,它必须精确地走 通过所有点(如下所示),并尝试使用R从图形中获得100个等距点样本。第一个点和最后一个点可以连接起来以获得闭合曲线 这里是一个设定点R 拟合闭合曲线,然后从该曲线绘制等距点,r,R,我试图得到一条闭合曲线,它必须精确地走 通过所有点(如下所示),并尝试使用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.005
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个等距点?也许这让你开始了。
xspline
函数允许创建闭合样条曲线-尽管我不确定如何控制插值点的数量。演示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)
df将形成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)
感谢马克的回答。这不是一条闭合曲线。我需要一条非自交闭合曲线。问题中给出的坐标是按照这个顺序排列的。很抱歉误解了-上面是一个例子,但不幸的是,我不知道如何将点数设置为100没有问题。非常感谢上面的示例。使用此处给出的答案可以解决此问题:>