3D分类图没有成比例的线条长度

3D categorized plot does not have proportional length of lines

我正在使用下面的代码生成一个 3D 分类图。正如您在示例范围中看到的那样,向量 Z 的范围在 0 到 5 之间,而向量 X 的范围在 0 到 20 之间。 我希望在 3D 中看到它们不是正方形,而是矩形类型的 3D 图形,因为 X 的长度大于 Z 的长度。 我怎样才能在情节中根据值的范围制作线条的长度。 (所以图中线条的长度是基于它们的比例长度)

我用的是lattice,不过也可以用GGPLot解决

Z<-(sample.int(101,size=100,replace=TRUE)-1)/20
Y<-(sample.int(101,size=100,replace=TRUE)-1)/10
X<-(sample.int(101,size=100,replace=TRUE)-1)/5
boxplot(Z)
cat <- c(rep("A",0.1*100),rep("B",0.2*100),rep("C",0.65*100),rep("D",0.05*100))
cat <- sample(x, 100)
df <- data.frame(X, Y, Z, cat)
library(lattice)
cloud(Z ~ Y * X,  group = cat, data = df, auto.key = TRUE)  

尝试

cloud(Z ~ Y * X,  group = cat, data = df, auto.key = TRUE,
  aspect=c(2,.5)) 

来自?cloud

aspect is taken to be a numeric vector of length 2, giving the relative aspects of the y-size/x-size and z-size/x-size of the enclosing cube.

这是针对 z ~ x * y 形式的公式。 请注意,您有 Z ~ Y * X,因此定义已切换。

编辑: 您还可以使用

之类的方法计算相对大小
cloud(Z ~ Y * X,  group = cat, data = df, auto.key = TRUE,
    aspect=c(diff(range(X))/diff(range(Y)),diff(range(Z))/diff(range(Y))))