2013-02-05 19 views
8

plot3d()產生一個三維圖,我可以扭動和旋轉。但是當我再次撥打plot3d()時,以前的情節就會消失,並被這一個取代。plot3D - 一次有兩個圖塊

我該怎麼做才能讓一個新的XQuartz窗口打開,而不是舊的窗口被新的3d圖代替。

本質上,我想要一次打開兩個3d圖。

+1

添加'rgl'標籤,因爲我認爲這是函數來自哪裏 –

回答

11

這樣的:

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第二曲線之前,打開一個新的「設備」

2

你可能會發現,第二RGL繪圖窗口已被簡單地放置正好在較早的窗口之上。如果你移動第二個窗口,你會看到第一個窗口仍然在那裏(儘管現在沒有「聚焦」狀態。)沒有必要繪製到設備,以保持它們可用。你改變獲得S中的焦點與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. 

你不能有2個窗口激活(在獲得commnds的意義上)在一次,但你可以讓他們都看到了,如果一個是集紡紗它在焦點轉移到另一個窗口後會繼續旋轉。如果您設置了add=TRUE,也可以使用plot3d函數將其添加到現有的繪圖中。