用不同的x、y、z颜色和长度在R中绘制4D图

用不同的x、y、z颜色和长度在R中绘制4D图,r,4d,plot3d,R,4d,Plot3d,我有一个30 x 16 x 9的矩阵,我想通过R中的4-D图来可视化。 我已经在包plot3d和scatterplot3d中尝试了scatter3D() x <- seq(10, 300, 10) y <- seq(5.0, 20.0, 1.0) z <- c(seq(0.5, 4, 0.5), 10) scatter3D(x, y, z, colvar = data) x之所以会发生这种情况,是因为此图中每个点必须有三个值。x

我有一个30 x 16 x 9的矩阵,我想通过R中的4-D图来可视化。 我已经在包
plot3d
scatterplot3d
中尝试了
scatter3D()

      x <- seq(10, 300, 10)
      y <- seq(5.0, 20.0, 1.0)
      z <- c(seq(0.5, 4, 0.5), 10)
      scatter3D(x, y, z, colvar = data)

x之所以会发生这种情况,是因为此图中每个点必须有三个值。x有30个值,y有16个值,z有9个值。使用此数据,只有前9个点具有x-y-z值。在你的问题的评论中,对这一点给出了很好的解释。例如,另一种方法是插值数据以创建缺失的值

库(“plot3D”)

你说你有一个矩阵,但是你有三个向量。首先需要创建“矩阵”(在这里,我们将使用
expand.grid
创建一个名为
df
的data.frame):


要在三维空间中绘制点,您需要知道该点的三个空间坐标,例如,(x、y、z)或(纬度、经度、海拔)。如果我给你一个点的x坐标,它在y-z平面上的位置可以是任何地方。因此,
scatter3D
需要为要绘制的每个点提供三个空间坐标。这就是为什么x、y和z向量的长度必须相同。答案提供了有关如何使用代码执行此操作的详细信息。啊,我看到~~~x,y,z应该对应于我要绘制的每个点的x,y,z坐标。谢谢
library("plot3D")
number_of_points <- 50
xx <- seq(10, 300, 10)
yy <- seq(5.0, 20.0, 1.0)
zz <- c(seq(0.5, 4, 0.5), 10)

xx <- approx(x = xx, method="linear", n=number_of_points, ties = mean)$y
yy <- approx(x = yy, method="linear", n=number_of_points, ties = mean)$y
zz <- approx(x = zz, method="linear", n=number_of_points, ties = mean)$y

scatter3D(xx, yy, zz)
x <- seq(10, 300, 10)
y <- seq(5.0, 20.0, 1.0)
z <- c(seq(0.5, 4, 0.5), 10)

df <- expand.grid(x = x, y = y, z = z)
car::scatter3d(x ~ y + z, data = df)
car::scatter3d(df$x, df$y, df$z)