R 将平面添加到散点图3D

R 将平面添加到散点图3D,r,R,我有一个直线方程 y=sqrt(c+x^2) 我想在三维散点图中添加一个平面,这样我的平面垂直于xy平面,上面给出的线是两个平面的交线 我该怎么做?我不太明白plane3d是如何工作的。我读过 但是仍然没有得到它。这可能是您正在寻找的: library(scatterplot3d) # y=sqrt(a+x^2) with x in (-0.5,0.5), z in (0,1) and a=0 a <- 0 x <- rep(seq(-0.5, 0.5, length = 200),

我有一个直线方程

y=sqrt(c+x^2)

我想在三维散点图中添加一个平面,这样我的平面垂直于xy平面,上面给出的线是两个平面的交线

我该怎么做?我不太明白plane3d是如何工作的。我读过


但是仍然没有得到它。

这可能是您正在寻找的:

library(scatterplot3d)
# y=sqrt(a+x^2) with x in (-0.5,0.5), z in (0,1) and a=0
a <- 0
x <- rep(seq(-0.5, 0.5, length = 200), each = 200)
y <- sqrt(a + x^2)
z <- rep(seq(0, 1, length = 200), 200)
scatterplot3d(x, y, z, highlight.3d = TRUE, pch = 20)
现在将
x
x2
相结合,并与其他人进行同样的操作,我们得到:

scatterplot3d(c(x,x2), c(y,y2), c(z,z2), highlight.3d = TRUE, pch = 20)

除了前面的答案之外,一旦构建了三维散点图,您可以通过创建模型并使用嵌套在
散点图3D()中的函数对其进行解析来向其添加平面。它应该是这样的:

plot3d <- scatterplot3d(x, y, z, ... )
model  <- lm(y ~ sqrt(c + x^2) + z)
plot3d$plane3d(model)

plot3d如何将该东西添加到已经存在的散点图中,并在散点图上加上点?@user1760348,这是否回答了问题?相关,但不是重复:
plot3d <- scatterplot3d(x, y, z, ... )
model  <- lm(y ~ sqrt(c + x^2) + z)
plot3d$plane3d(model)
spd <- scatterplot3d(1:10, 1:10, 1:10)

# xy
spd$plane3d(0.3549896,0,0,lty="dotted")

# yz
x0 <- 5
xyz1 <- spd$xyz.convert(rep(x0, 6), rep(0, 6), seq(0, 10, by=2))
xyz2 <- spd$xyz.convert(rep(x0, 6), rep(10, 6), seq(0, 10, by=2))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")

xyz1 <- spd$xyz.convert(rep(x0, 6), seq(0, 10, by=2), rep(0, 6))
xyz2 <- spd$xyz.convert(rep(x0, 6), seq(0, 10, by=2), rep(10, 6))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")

# zx
y0 <- 6
xyz1 <- spd$xyz.convert(rep(0, 6), rep(y0, 6), seq(0, 10, by=2))
xyz2 <- spd$xyz.convert(rep(10, 6), rep(y0, 6), seq(0, 10, by=2))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")

xyz1 <- spd$xyz.convert(seq(0, 10, by=2), rep(y0, 6), rep(0, 6))
xyz2 <- spd$xyz.convert(seq(0, 10, by=2), rep(y0, 6), rep(10, 6))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")