2013-02-05 18 views
8

plot3d() एक 3 डी प्लॉट का उत्पादन करता है जिसे मैं चारों ओर मोड़ सकता हूं और घूम सकता हूं। लेकिन जब मैं plot3d() को दोबारा कॉल करता हूं, पिछली साजिश दूर हो जाती है और इसे बदल दिया जाता है।plot3D - एक बार में दो प्लॉट्स

मैं इसे कैसे बना सकता हूं ताकि नई 3 डी प्लॉट द्वारा पुरानी विंडो को प्रतिस्थापित करने के बजाय एक नई XQuartz विंडो खुलती है।

अनिवार्य रूप से, मैं दो बार 3 डी प्लॉट खोलना चाहता हूं।

+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

हो सकता है आप कि 2 RGL की साजिश रचने खिड़की बस रखा गया है बिल्कुल पहले की खिड़की के शीर्ष पर। यदि आप दूसरी विंडो को ले जाते हैं तो आप देखेंगे कि पहला वाला अभी भी वहां है (हालांकि अब "फोकस" स्थिति नहीं है।) उन्हें उपलब्ध रखने के लिए उपकरणों को साजिश करने की कोई आवश्यकता नहीं है।

> 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 हो रही के अर्थ में) नहीं हो सकता है, लेकिन आप उन दोनों को दिखाई हो सकता है, और अगर एक यह कताई स्थापित किया गया था: आप विधवा कि रों rgl.set साथ फोकस मिल बदल फोकस को दूसरी विंडो में स्थानांतरित करने के बाद स्पिन जारी रहेगा। यदि आप add=TRUE सेट करते हैं तो आप plot3d फ़ंक्शन के साथ मौजूदा प्लॉट में भी जोड़ सकते हैं।

संबंधित मुद्दे