我找到了一种替代方法:使用包rgl I和函数表面3D,我可以在一个open3d窗口中堆叠多个3D表面图。让我们看一个小例子:
library("rgl")
data2_I<-matrix(c(1.0,1.0,0.6,0.6,0.7,0.9,0.9,0.5,0.5,0.5,0.7,0.9,0.9,0.6,0.3,0.4,0.7,0.9,0.9,0.7,0.5,0.5,0.6,0.9,0.9,0.7,0.6,0.6,1.0,1.0), nrow=5)
data0_I<-matrix(c(1.0,1.0,0.6,0.6,0.7,0.9,0.9,0.5,0.5,0.5,0.7,0.9,0.9,0.6,0.3,0.4,0.7,0.9,0.9,0.7,0.5,0.5,0.6,0.9,0.9,0.7,0.6,0.6,1.0,1.0), nrow=5)
data1_I<-2*data0_I
data2_I<-1/data1_I
elv=0
offs=5*elv+1
z0 <- scale*data0_I
z1 <- scale*data1_I
z2 <- scale*data2_I
x <- 1:nrow(z0)
y <- 1:ncol(z0)
palette <- colorRampPalette(c("blue","green","yellow", "red"))
col.table <- palette(256)
open3d(windowRect=c(50,50,800,800))
surface3d(x, y, elv*z0, color = col.table[cut(z0, 256)], back = "lines")
surface3d(x, y, elv*z1+1*offs, color = col.table[cut(z1, 256)], back = "lines")
surface3d(x, y, elv*z2+2*offs, color = col.table[cut(z2, 256)], back = "lines")
axes3d()
aspect3d(1,1,2)
变量offsand ELV包括用于美容目的:取舍控制两个面图和高程surface3d-地块的z轴应该如何扩展之间的空间。由于我想有一个没有任何高程的2D曲面绘图,我将它设置为零。
你应该包含与'TPS'相关的库函数。另外,这个例子不是可重复的 - 如果你给我们一个独立的例子(我们没有'data2_I'),人们更可能帮助你。 – jbaums 2015-02-28 00:03:02
Ups,对不起,我忘记了包含这些数据。 – 2015-03-01 01:02:19