RGL 中的多个二维背景图

Multiple 2D background plots in RGL

我正在尝试将多个背景图例放在 rgl 图上(在我的真实示例中,一个用于线,一个用于点),我希望它们位于不同的角落屏幕。似乎 rgl 的默认行为是在调用新图例时替换旧图例。以下代码修改自 rgl legend3d 示例,说明了这一点:

library(rgl)
x <- rnorm(100)
y <- rnorm(100)
z <- rnorm(100)
open3d()
par3d(windowRect = c(100, 100, 612, 612))
plot3d(x, y, z)
legend3d(x = 0, y = 0, xjust = 0, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16))
legend3d(x = 1, y = 0, xjust = 1, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16))

如何解决此问题并显示多个 2D 图形?

legend3d()plot()之后使用legend()制作背景。所以它不能制作多个传说。最好用bgplot3d().

open3d()
par3d(windowRect = c(100, 100, 612, 612))

plot3d(x, y, z)

bgplot3d({
  par(mar = c(0, 0, 0, 0))
  plot(0, 0, type = "n", xlim = 0:1, ylim = 0:1, xaxs = "i", 
       yaxs = "i", axes = FALSE, bty = "n")
  legend(x = 0, y = 0, xjust = 0, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16))
  legend(x = 1, y = 0, xjust = 1, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16))
})