绘制R中的3D区域

时间:2014-05-20 13:23:07

标签: r plot 3d

我有三个变量,xyz,我想在3D图中绘制以下区域(阴影):

1 < x < 4, 5 < y < 10, -6 <z <-2

我有什么方法可以做到吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

以下是代码:

library(rgl)
c3d <- cube3d(color="red",alpha=.1)
c3d$vb[1,] <- c3d$vb[1,] *1.5+2.5
c3d$vb[2,] <- c3d$vb[2,] *2.5+7.5
c3d$vb[3,] <- c3d$vb[3,] * 2 - 4
shade3d(c3d)
axes3d()

棘手的一点:原始立方体c3d为-1&lt; = x,y,z&lt; = 1.角落在c3d$vb中列为8列。我将原始角落转换为新角落。例如关于我们想要将(-1,1)转换为(1,4)的x轴(c3d$vb的第一行)。这是通过因子(4-1)/(1 - ( - 1))= 1.5来完成的,它将(-1,1)转换为(-1.5,1.5)。然后加入4-1.5 = 2.5,我们将得到(1,4)。

enter image description here

如果你有兴趣在你的情节中使用轴,你可以在shade3d(c3d)之前添加plot3d(0,0,0) - 我相信有更好的解决方案 - 你将拥有:

enter image description here