我有三个变量,x
,y
和z
,我想在3D图中绘制以下区域(阴影):
1 < x < 4, 5 < y < 10, -6 <z <-2
我有什么方法可以做到吗?
谢谢!
答案 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)。
如果你有兴趣在你的情节中使用轴,你可以在shade3d(c3d)之前添加plot3d(0,0,0) - 我相信有更好的解决方案 - 你将拥有: