我们需要在 R 中绘制多个曲面,并一一调用相应的绘图命令(使用plot3D
库;但同样适用于具有基本 R 绘图样式的任何其他环境)。每个表面都是由数据构建的,包含不同范围的数据。我们可以通过一些着色方案为每个表面着色,如下所示:
我们将一些假数据作为 XYZ 点:
out.trial<-read.csv(text="1, 1, 30
1, 2, 35
1, 3, 29
1, 4, 33
2, 1, 31
2, 2, 32
2, 3, 34
2, 4, 35
3, 1, 28
3, 2, 29
3, 3, 29.5
3, 4, 31
4, 1, 30
4, 2, 31
4, 3, 33
4, 4, 33",header=FALSE)
现在我们构建两个彩色“表面”作为散点图。第二个“表面”是通过将所有值移动 20 来产生的。
library("plot3D")
scatter3D(out.trial$V1, out.trial$V2, -out.trial$V3, phi = 0, bty = "g",
col = gg.col(100,alpha=0.8), pch = 18, ticktype="detailed", xlab = "lon",
ylab ="lat", zlab = "depth",colvar=-out.trial$V3,zlim=c(-65,-25))
scatter3D(out.trial$V1, out.trial$V2, -20-out.trial$V3, phi = 0, bty =
"g", col = gg.col(100,alpha=0.8), pch = 18,
colvar=-20-out.trial$V3,zlim=c(-65,-25), add=TRUE)
plotdev()
但是,在绘图命令中调用的标准颜色键函数默认情况下从变量的最小/最大范围为每个表面分配颜色。因此,具有不同值范围的两个表面都以相同的方式着色。在上面的示例中,第一个表面(散点组)包含 28-35 范围内的值,第二个表面 - 48-55,它们都在从蓝色到栗色的调色板中着色。我需要为每个表面设置从 28 到 55 的配色方案(在这种情况下)。所以上面的点是黄色的,下面的点是蓝色的。如何修改指令colvar =
以设置用于分配颜色的自定义范围?