在 R 中使用 plot3D {rasterVis} 在同一个 window 中显示多个 3d 图
Displaying multiple 3d plots in the same window using plot3D {rasterVis} in R
我有兴趣制作两个在同一个 Xquartz 设备上并排显示的 3d 地形图 window。使用 rgl 包在同一个 window 中显示两个 3d 图很简单 - 文档中有大量使用 mfrow3d()
和其他方法的示例。
但是,我需要使用 rasterVis 包中的 plot3D()
函数。我使用 rasterVis 中的 plot3D()
而不是 rgl 中的 surface3d()
之类的原因是我需要使用 plot3D()
中的 drape
参数来显示栅格中的值作为 3d 地形图上的颜色(并且此栅格具有与在图上创建 z 轴的栅格不同的值)。如果有人对 rgl 函数中类似于悬垂的东西有提示,我也会对此感兴趣!
当我尝试将 mfrow3d()
与 plot3D()
函数一起使用时,它会弹出一系列空白设备 windows 而不是在同一画面中并排显示两个图window.
这是一些使用 plot3D 制作地形图的代码,来自 rasterVis 文档:
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 做的事情是否可行?
当前版本的rasterVis::plot3D
每次调用都会打开一个新设备。我已经修改了它的代码来测试是否有一个活动的设备,并且只在需要时打开一个新的。使用此 commit,您的示例将按预期工作。您应该使用 devtools::install_github('oscarperpinan/rasterVis')
.
安装 rasterVis
的开发版本
我有兴趣制作两个在同一个 Xquartz 设备上并排显示的 3d 地形图 window。使用 rgl 包在同一个 window 中显示两个 3d 图很简单 - 文档中有大量使用 mfrow3d()
和其他方法的示例。
但是,我需要使用 rasterVis 包中的 plot3D()
函数。我使用 rasterVis 中的 plot3D()
而不是 rgl 中的 surface3d()
之类的原因是我需要使用 plot3D()
中的 drape
参数来显示栅格中的值作为 3d 地形图上的颜色(并且此栅格具有与在图上创建 z 轴的栅格不同的值)。如果有人对 rgl 函数中类似于悬垂的东西有提示,我也会对此感兴趣!
当我尝试将 mfrow3d()
与 plot3D()
函数一起使用时,它会弹出一系列空白设备 windows 而不是在同一画面中并排显示两个图window.
这是一些使用 plot3D 制作地形图的代码,来自 rasterVis 文档:
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 做的事情是否可行?
当前版本的rasterVis::plot3D
每次调用都会打开一个新设备。我已经修改了它的代码来测试是否有一个活动的设备,并且只在需要时打开一个新的。使用此 commit,您的示例将按预期工作。您应该使用 devtools::install_github('oscarperpinan/rasterVis')
.
rasterVis
的开发版本