2013-09-27 9 views
5

पर एक किंवदंती जोड़ना इंटरैक्टिव 3 डी प्लॉट्स के लिए संभावित पैकेजों में से एक है rgl। मैं कुछ कारक चर के अनुसार रंग कोडिंग के साथ 3 डी स्कैटरप्लॉट बनाने के लिए क्या करना चाहता हूं। 3 डी आयामी स्कैटरप्लॉट plsr विश्लेषण से परिणामी लोडिंग के लिए है।scatter3d plot

जिसके परिणामस्वरूप साजिश लग रहा है

3D scatterplot of PLS loadings with color coding according to the groups of variables

तरह उदाहरण डेटा किसी तालिका में दिया जाता है:

> loadings 

     |  Comp 1   |  Comp 2   | Comp 3   | Class 
-------------------------------------------------------------------------------------------      
TEMP | -0.0607044182964255 | "0.0437618450165671"  |"0.045124991801441" | "global" 
MW | "-0.13414890573833" | "-0.0970537799069731" |0.263043734662182" | "local" 
DM |"-0.183751529577861" | "-0.102703237685933" |"0.0640549385564205" | "global" 
CHG |"-0.0558781715833019"| "0.125155347350922"  |"-0.119258450107321" | "local" 

या उत्पन्न किया जा सकता:

loadings <- data.frame(Comp1 = c(1.2, 3.4, 5.6, 13.1), Comp2 = c(4.3, 1.2, 7.7, 9.8), 
         Comp3 = c(1.2,6.9,15.6,15.0), 
         row.names = c("TEMP", "MW", "DM", "CHG"), 
         Class = c("global", "local", "global", "local")) 
scatter3d(x=loadings[[1]], y=loadings[[2]], z=loadings[[3]], 
      point.col = as.numeric(as.factor(loadings[,4])), size = 10) 

प्राप्त साजिश एस है मुझे शैली है, लेकिन बहुत सरल है वहाँ चर "क्लास" के केवल दो स्तर हैं के रूप में: 'वैश्विक' और 'स्थानीय'

enter image description here

प्रश्न है: यह RGL भीतर कथा जोड़ने के लिए किसी भी संभावना है या शायद कुछ स्वतंत्र किंवदंती साजिश से जुड़ा जा सकता है? मदद के लिए अग्रिम धन्यवाद!

जवाब है:

scatter3d(x=loadings[[1]], y=loadings[[2]], z=loadings[[3]], 
      point.col = as.numeric(as.factor(loadings[,4])), size = 10, type = 's') 
text3d(x=1.1, y=c(.9,1), z=1.1,levels(loadings[[4]]),col="black") 
points3d(x=1.2,y=c(.9,1),z=1.1, col=as.numeric(as.factor(loadings[,4])), size=5) 

वर्गों के अनुसार लेबल के साथ साजिश: enter image description here

+0

कृपया कोड जोड़ सकते हैं और संभव डेटा (वास्तविक या बना-अप) अपने प्रश्न का इतनी के रूप में एक [न्यूनतम रेपर बनाने के लिए करता है, तो oducible उदाहरण] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)। – SlowLearner

+0

वह नया कोड एक त्रुटि फेंकता है: "पूर्ण.cases में त्रुटि (x, y, z): ..."। पी –

+0

उस त्रुटि को ठीक किया गया। – Boddha

उत्तर

1

एक plot3d छवि नहीं है यही कारण है कि (जब तक कि शायद आप एक और पैकेज भरी हुई है), लेकिन एक scatter3d तरह लग रहा है scatter3d के साथ car पैकेज के साथ बनाया गया प्रतिपादन जॉन फॉक्स द्वारा

require(rgl) 
    require(car) 
    scatter3d(x=loadings[[1]], y=loadings[[2]], z=loadings[[3]], 
      point.col = as.numeric(as.factor(loadings[,4])), size = 10) 

scatter3d फ़ंक्शन आरजीएल फ़ंक्शंस पर निर्भर करता है लेकिन इसमें कुछ अनुकूलन विकल्प हैं। आप एक "कथा" के निर्माण के लिए कोई कोड की पेशकश की है, इसलिए मैं उदाहरण RGL :: text3d में की पेशकश के साथ चारों ओर खेला:

text3d(1+ font/8, 1+cex/4, 1+famnum/8, text=paste(family, font), adj = 0.5, 
     color="blue", family=family, font=font, cex=cex) 

enter image description here

नए डेटा इस पाठ के लिए अनुरोध के जवाब में है के साथ

और अंक:

scatter3d(x=loadings[[1]], y=loadings[[2]], z=loadings[[3]], 
      point.col = as.numeric(as.factor(loadings[,4])), size = 10) 
text3d(x=1.1, y=c(.9,1,1.1), z=1.1, names(loadings) ,col="black") 
points3d(x=1.2,y=c(.9,1,1.1),z=1.1, col=as.numeric(as.factor(loadings[,4])), size=5) 

enter image description here

+0

हाँ, यह वास्तव में scatter3d है, इसे ठीक किया गया है। खैर, यह अच्छा लग रहा है, लेकिन अजीब और बहुत जानकारीपूर्ण नहीं है। पाठ देखें। और मुझे किंवदंती में, डेटा बिंदुओं के रंग लेबल के अनुरूप रंग लेबल होना चाहिए। – Boddha

+0

प्रदर्शन के रूप में एक संरचित तरीके से अंक और पाठ को प्लॉट करना बहुत मुश्किल नहीं होना चाहिए। आपको विस्तार से वांछित विवरण देने की आवश्यकता है। –

+0

अब यह है, मैं ऊपर परिणाम डाल देंगे। धन्यवाद! – Boddha

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