2010-04-07 16 views
5

मैं सिर्फ एक क्रॉस this nice code कि इस बिखराव मैट्रिक्स साजिश बनाता आया:सहसंबंध (आर) में अलग अलग बिंदु आकार के साथ स्कैटर-मैट्रिक्स साजिश

alt text http://addictedtor.free.fr/graphiques/graphiques/graph_137.png

और यह एक likret पैमाने चर को लागू करना चाहता था (पूर्णांकों 1 से 5 तक) डॉट के आकार/रंग (निचले त्रिकोण में) बनाकर भिन्न होता है कि उस प्रकार के कितने विकल्प होते हैं (जैसे जिटर ने मुझे दिया हो सकता है)।

बेस प्लॉटिंग तंत्र पर इसे कैसे करें इस पर कोई विचार है?

अद्यतन:

मैं निम्नलिखित समारोह बना है, लेकिन कैसे डॉट्स के पैमाने हमेशा की तरह, "अच्छा" हो तुम्हें क्या लगता है के लिए पता नहीं है?

panel.smooth2 <- function (x, y, col = par("col"), bg = NA, pch = par("pch"), 
        cex = 1, col.smooth = "red", span = 2/3, iter = 3, ...) 
{ 
    require(reshape) 
    z <- merge(data.frame(x,y), melt(table(x ,y)),sort =F)$value 
    z <- z/ (4*max(z)) 

    symbols(x, y, circles = z,#rep(0.1, length(x)), #sample(1:2, length(x), replace = T) , 
      inches=F, bg="blue", fg = bg, add = T) 

    # points(x, y, pch = pch, col = col, bg = bg, cex = cex) 
    ok <- is.finite(x) & is.finite(y) 
    if (any(ok)) 
     lines(stats::lowess(x[ok], y[ok], f = span, iter = iter), 
      col = col.smooth, ...) 
} 



a1 <- sample(1:5, 100, replace = T) 
a2 <- sample(1:5, 100, replace = T) 
a3 <- sample(1:5, 100, replace = T) 
aa <- data.frame(a1,a2,a3) 


pairs(aa , lower.panel=panel.smooth2) 

उत्तर

3

आप प्रतीकों '(तरीकों की पंक्तियां' के समान है, 'abline' एट अल।) का उपयोग कर सकते

इस विधि तुम दोनों प्रतीकों आकार और एक एकल में रंग से अधिक कुशल नियंत्रण दे देंगे कोड की रेखा।

'प्रतीक' का उपयोग करके आप प्रतीक आकार, रंग और आकार सेट कर सकते हैं। आकार और आकार प्रत्येक प्रतीक के आकार के लिए एक वेक्टर में गुजरकर और इसे 'मंडल', 'वर्ग', 'आयताकार', या 'सितारों', जैसे 'सितारों' = सी (4, 3, 5, 1)। रंग 'बीजी' और/या 'एफजी' के साथ सेट है।

symbols(x, y, circles = circle_radii, inches=1/3, bg="blue", fg=NULL) 

तो मैं अपने प्रश्न के दूसरे भाग को समझते हैं, आप यथोचित लगता है कि समारोह आप प्रतीकों पैमाने पर करने में अपने भूखंड एक सार्थक तरीके से ऐसा नहीं करता है का उपयोग होना चाहता हूँ। 'प्रतीकों' फ़ंक्शन स्केल (उदाहरण के लिए) 'z' चर (या डेटा.फ्रेम कॉलम इत्यादि) में मानों के आधार पर सर्कल के) नीचे दी गई पंक्ति में, मैंने अधिकतम प्रतीक आकार (त्रिज्या) सेट किया है 1/3 इंच - सबसे बड़ा छोड़कर प्रत्येक प्रतीक में त्रिज्या कुछ अंश छोटा होता है, जो उस बिंदु बिंदु के मूल्य के अनुपात के अनुपात से सबसे बड़ा मूल्य होता है। इसके अनुपात में यह एक अच्छा विकल्प है? मुझे नहीं पता - ऐसा लगता है कि व्यास या विशेष रूप से परिधि बेहतर हो सकती है। किसी भी घटना में, यह एक छोटा बदलाव है। संक्षेप में, 'सर्किल' के साथ 'प्रतीकों' को 'जेड' समन्वय के अनुपात में प्रतीकों की त्रिज्या को स्केल किया जाएगा - शायद निरंतर चर के लिए सबसे उपयुक्त है। मैं असतत चर/कारकों के लिए रंग ('बीजी') का उपयोग करूंगा।

'प्रतीकों' का उपयोग करने का एक तरीका है अपने प्लॉट फ़ंक्शन को कॉल करना और टाइप = 'एन' में गुजरना जो प्लॉट ऑब्जेक्ट बनाता है लेकिन प्रतीकों को चित्रित करता है ताकि आप उन्हें 'प्रतीकों' फ़ंक्शन के साथ खींच सकें।

मैं इस उद्देश्य के लिए 'cex' की अनुशंसा नहीं करता। 'सीएक्स' टेक्स्ट आकार और प्रतीकों के आकार दोनों के लिए एक स्केलिंग कारक है, लेकिन यह उन दो साजिश तत्वों में से कौन सा है जो इसे प्रभावित करते हैं, इस पर निर्भर करता है कि यदि आप इसे पार करते हैं - यदि आप इसे 'par' के माध्यम से सेट करते हैं तो यह अधिकांश टेक्स्ट दिखाई देता है साजिश पर; यदि आप इसे 'प्लॉट' फ़ंक्शन के भीतर सेट करते हैं तो यह प्रतीकों के आकार को प्रभावित करता है।

+0

धन्यवाद डौग, मैं आपके समाधान के साथ गया लेकिन एक और सवाल आया (मैंने मूल प्रश्न अपडेट किया) - कोई विचार? –

+0

ठीक ताल - अब आपके अपडेट को आपके अपडेट किए गए प्रश्न – doug

+0

के प्रकाश में संपादित करें धन्यवाद शेन, मैंने आपके सुझाव को लागू किया और परिणाम (स्पष्ट रूप से क्रेडिट के साथ) प्रकाशित किया: http://www.r-statistics.com/2010/04/सह-संबंध-बिखराव-प्लाट-मैट्रिक्स के लिए आदेश दिया-स्पष्ट-डाटा / –

2

ज़रूर, बस cex का उपयोग करें:

set.seed(42) 
DF <- data.frame(x=1:10, y=rnorm(10)*10, z=runif(10)*3) 
with(DF, plot(x, y, cex=z)) 

जो आप अलग वृत्त आकार देता है। रंग बस चौथा आयाम हो सकता है।

+0

हाय डिर्क, धन्यवाद। मैं डौग के सुझाव का उपयोग कर समाप्त हुआ लेकिन एक और सवाल आया (मैंने मूल प्रश्न अपडेट किया) - कोई विचार? –

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