plot3d()生成了一个我可以旋转和旋转的3d图。但是当我再次调用plot3d()时,前面的图就消失了,取而代之的是下面的图。
如何才能打开一个新的XQuartz窗口,而不是旧窗口被新的3d绘图替换。
从本质上讲,我希望同时打开两个3d图。
发布于 2013-02-06 01:04:07
如下所示:
library(rgl)
open3d()
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col=rainbow(1000))
open3d()
x <- sort(rnorm(20))
y <- rnorm(20)
z <- rnorm(20) + atan2(x,y)
plot3d(x, y, z, col=rainbow(20))这里的关键是在第二个绘图之前调用open3d来打开一个新的“设备”。
发布于 2013-02-06 05:04:39
您可能会发现,第二个rgl绘图窗口恰好被放置在前一个窗口的顶部。如果你移动第二个窗口,你会看到第一个窗口仍然在那里(尽管现在没有“焦点”状态)。不需要绘制到设备以使其保持可用。使用rgl.set更改获得焦点的窗口
> open3d()
[1] 3 # might have been "1"
> open3d()
[1] 4 # Now move that 2nd window to the side
> rgl.set(3)
#Focus is returned to the first window.你不能同时激活两个窗口(在获取命令的意义上),但你可以让它们都可见,如果其中一个被设置为旋转,它将在焦点转移到另一个窗口后继续旋转。如果设置了add=TRUE,还可以使用plot3d函数添加到现有绘图。
发布于 2019-01-11 21:44:08
“同时打开两个3d图”的另一种方法是使用library("rgl")的mfrow3d。它的工作方式与经典R中的par("mfrow")相同。
以下改编的代码(来自here)在一个窗口中生成两个并排的3D绘图(2列):
library(rgl)
mfrow3d(1, 2)
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col=rainbow(1000))
x <- sort(rnorm(20))
y <- rnorm(20)
z <- rnorm(20) + atan2(x,y)
plot3d(x, y, z, col=rainbow(20))https://stackoverflow.com/questions/14712497
复制相似问题