gpt4 book ai didi

r - 如何在R中平滑绘制参数化3d曲线?

转载 作者:行者123 更新时间:2023-12-04 11:03:24 26 4
gpt4 key购买 nike

我有参数化 3d 曲线的数据:

    t        x       y       z
0.000 3.734 2.518 -0.134
0.507 2.604 9.059 0.919
0.861 1.532 11.584 -0.248
1.314 1.015 1.886 -0.325
1.684 2.815 4.596 3.275
1.938 1.359 8.015 2.873
2.391 1.359 8.015 2.873
..............................

我找到了 scatterplot3dplot3d真的很酷。但我需要一个平滑的 3d 曲线。

我怎样才能在 R 中绘制它?

最佳答案

您可以使用 spline在您的点之间进行插值并平滑曲线。

d <- read.delim(textConnection(
"t x y z
0.000 3.734 2.518 -0.134
0.507 2.604 9.059 0.919
0.861 1.532 11.584 -0.248
1.314 1.015 1.886 -0.325
1.684 2.815 4.596 3.275
1.938 1.359 8.015 2.873
2.391 1.359 8.015 2.873"
), sep=" ")
ts <- seq( from = min(d$t), max(d$t), length=100 )
d2 <- apply( d[,-1], 2, function(u) spline( d$t, u, xout = ts )$y )
library(scatterplot3d)
p <- scatterplot3d(d2, type="l", lwd=3)
p$points3d( d[,-1], type="h" )

Smoothed curve

根据@Spacedman 的评论,您还可以使用 rgl :
这允许您以交互方式旋转场景。
library(rgl)
plot3d( d2, type="l", lwd=5, col="navy" )
points3d(d[,-1])
spheres3d(d[,-1], radius=.1, col="orange")
segments3d( matrix( t( cbind( d[,-1], d[,2:3], 0 ) ), nc=3, byrow=TRUE ) )
planes3d(0,0,1,0, col="yellow", alpha=.5)  # Plane z=0

enter image description here

关于r - 如何在R中平滑绘制参数化3d曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15717267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com