我有一个矩阵30 * 16 * 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)
总是会出错,说'y'应该与'x'的长度相同。 怎么处理这个?为什么x,y,z必须长度相等?这太不方便了
答案 0 :(得分:2)
这是因为每个点必须有三个值才能生成此图。 x有30个值,y有16个值,z有9个值。使用此数据,只有前9个点具有x-y-z值。在您的问题的评论中,eipi10给出了非常好的解释。例如,另一种方法是插入数据以创建缺失值。 More about data interpolation
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)
希望它有所帮助!
答案 1 :(得分:2)