plot3D - having two plots at once

淺唱寂寞╮ 提交于 2019-12-09 02:49:13

问题


plot3d() produces a 3d plot that I can twist around and rotate. But when I call plot3d() again, the previous plot goes away and is replaced by this one.

How can I make it so that a new XQuartz window opens up rather than the old window being replaced by the new 3d plot.

Essentially, I want two 3d plots opened at once.


回答1:


like this:

 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))

The key here is calling open3d before the second plot to open a new "device"




回答2:


You might discover that the 2nd rgl plotting window has simply been placed exactly on top of the earlier window. If you move the second window you will see the first one is still there (although not now having "Focus" status.) There is no need to plot to the devices in order to keep them available. You change the window that gets the focus with 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.

You cannot have 2 windows active (in the sense of getting commands) at once, but you can have them both visible, and if one was set spinning it would continue to spin after focus were shifted to the other window. You can also add to an existing plot with the plot3d function if you set add=TRUE.




回答3:


An alternative to have "two 3d plots opened at once" is using mfrow3d from library("rgl"). It works the same way as par("mfrow") in classic R.

The following adapted code (from here) produces two side-by-side 3D plots (2 columns) in one window:

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/plot3d-having-two-plots-at-once

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!