我试图在R中的三维空间中绘制一组多边形。每个多边形是(非常规)k-simplex;也就是说,多边形的每一边由三角形构成。这里给出一个例子:
x1 y1 z1 x2 y2 z2 x3 y3 z3
triangle1 -2.59 8.44 6.00 -11.31 10.75 1.09 -2.59 8.44 6.00
triangle2 0.19 5.50 0.00 -3.66 10.27 0.61 0.19 5.50 0.00
triangle3 -11.31 10.75 1.09 -10.83 12.02 1.02 -2.73 9.75 1.23
triangle4 -10.83 12.02 1.02 0.19 5.50 0.00 -3.66 10.27 0.61
triangle5 0.19 5.50 0.00 -3.66 10.27 0.61 0.19 5.50 0.00
triangle6 -11.31 10.75 1.09 -10.83 12.02 1.02 -2.73 9.75 1.23
triangle7 -10.83 12.02 1.02 -2.59 8.44 6.00 -3.66 10.27 0.61
triangle8 -2.59 8.44 6.00 -2.73 9.75 1.23 -2.59 8.44 6.00
我在R中找到了三维中的图形点(scatterplot3d)或函数(plot3D)的包,但我没有找到一个图形多边形。 MATLAB中有一个函数(fill3)生成我正在寻找的图形(如下图所示),但是我希望在一个平台上执行所有数据分析(其中大部分已经在R中编码)。 R中是否有一个包或函数可以生成类似于MATLAB中三维多边形的数字?
Above data visualized as a three dimensional polygon, coded in MATLAB
答案 0 :(得分:1)
您要查找的软件包是plot3D
,特别是surf3D
函数。示例如下:
x <- data.matrix(dat[,c("x1", "x2","x3")])
y <- data.matrix(dat[,c("y1", "y2","y3")])
z <- data.matrix(dat[,c("z1", "z2","z3")])
surf3D(x,y,z, colvar=NULL, col="blue", border="black", theta = 75, phi=45, bty="b2", zlim=c(0,6*13), xlim = c(-12,2), ylim=c(5,13))