3

我有兴趣制作两个并排显示在同一个 Xquartz 设备窗口中的 3d 地形图。使用 rgl 包在同一个窗口中显示两个 3d 图很简单——文档中有很多示例 usingmfrow3d()和其他方法。

但是,我需要使用plot3D()rasterVis 包中的函数。我使用plot3D()rasterVis 而不是 rgl的原因surface3d()是我需要使用drape参数 inplot3D()将栅格中的值显示为 3d 地形图上的颜色(并且该栅格的值与创建该栅格的值不同)图上的 z 轴)。如果有人对 rgl 函数中类似于悬垂的东西有提示,我也会对此感兴趣!

当我尝试mfrow3d()与该plot3D()功能一起使用时,它会显示一系列空白设备窗口,而不是在同一个窗口中并排显示两个图。

以下是 rasterVis 文档中使用 plot3D 制作地形图的一些代码:

data(volcano)
r <- raster(volcano)
extent(r) <- c(0, 610, 0, 870)
levelplot(r, col.regions=terrain.colors)
plot3D(r)

在这里,我尝试使用 mfrow3d 并排绘制 2 个相同的火山图,一个蓝色,一个红色,我改编自 rgl 文档:

volcanos <- list(r, r)
col <- c("blue", "red")
open3d()
mfrow3d(1,2)
for (i in 1:2) {
next3d()   
plot3D(volcanos[[i]], col=col[i])
}

我正在尝试使用 rasterVis 的 plot3D 做些什么?

4

1 回答 1

3

当前版本的rasterVis::plot3D每次通话都会打开一个新设备。我已经修改了它的代码来测试是否有一个活动设备,并且只在需要时打开一个新设备。通过此提交,您的示例按预期工作。您应该安装rasterViswith的开发版本devtools::install_github('oscarperpinan/rasterVis')

于 2015-09-26T06:58:01.147 回答