2010-04-05 6 views
86

आर में, plot() फ़ंक्शन pch तर्क लेता है जो साजिश में बिंदुओं की उपस्थिति को नियंत्रित करता है। मैं हजारों अंकों के साथ स्कैटरप्लॉट बना रहा हूं और एक छोटा, लेकिन बहुत छोटा डॉट पसंद नहीं करता हूं। असल में, मुझे बहुत कम होने के लिए pch='.' मिलते हैं, लेकिन pch=19 बहुत वसा होने के लिए। बीच में कुछ है या डॉट्स को किसी भी तरह से स्केल करने के लिए कुछ तरीका है?आर स्कैटरप्लॉट में अंक के आकार को नियंत्रित करें?

+0

बजाय बनाने डॉट्स छोटे, वहाँ एक रास्ता सिर्फ इतना कहना 100 यादृच्छिक डेटा बिंदुओं 1000 की तुलना में देखने के लिए आसान होगा होगा प्लॉट करने के लिए है:

यहाँ उदाहरण है? – user2363642

+0

अल्फा (पारदर्शिता) का उपयोग करके, कई छोटे बिंदुओं के लिए, इसे प्लॉट करने के लिए कम अंक का उपयोग करने से स्कैटर प्लॉट को अधिक जानकारीपूर्ण बना सकते हैं। –

उत्तर

68

cex तर्क का प्रयास करें:

?par

  • cex
    एक संख्यात्मक मूल्य राशि है जिसके द्वारा की साजिश रचने पाठ और प्रतीकों रिश्तेदार डिफ़ॉल्ट करने के लिए बढ़ाया जाना चाहिए दे रही है। नोट plot.default इस नाम जो इस चित्रमय पैरामीटर गुणा का एक तर्क है इस तरह के के रूप में कुछ ग्राफिक्स काम करता है, और कुछ कार्यों अंक के रूप में इस तरह के मूल्यों जो पुनर्नवीनीकरण का एक वेक्टर स्वीकार करते हैं। अन्य उपयोग केवल पहले मान लेंगे यदि वेक्टर एक से अधिक लंबाई की लंबाई है।
+11

मुझे नहीं लगता कि मैं कभी भी प्रतीक आकार को नियंत्रित करने के लिए 'cex' का उपयोग नहीं करता जब तक कि मेरे पास कोई अन्य विकल्प न हो। यह केवल कुछ समय काम करता है; नियम यह है कि जब 'cex' 'par' के माध्यम से सेट किया जाता है, तो यह साजिश पर (अधिकांश) पाठ के आकार को प्रभावित करता है, जब 'प्लॉट' के अंदर सेट किया जाता है, 'cex' केवल प्रतीक आकार को प्रभावित करता है। इसलिए यदि आप उस नियम को गलत तरीके से लागू करते हैं तो न केवल आपका प्रतीक आकार बदलता है, लेकिन अब आपके पास टेक्स्ट आकार (cex.axis, cex.lab, cex.main, और cex.sub) को प्रभावित करने वाले कई पैरामीटर हैं - सभी एक ही करते हैं 'सीएक्स' के रूप में नौकरी, केवल टुकड़े के अनुसार)। इस तरह के कोड को बनाए रखना और विस्तार करना मुश्किल है। – doug

+4

सहमत हैं। 'Par' के माध्यम से वैश्विक रूप से' cex' को सेट करना, सभी प्रकार की चीजों को बदलता है, जिसमें आकृति मार्जिन शामिल हैं, जिन्हें आपको सही करना है। 'साजिश' के भीतर' cex' सेटिंग, हालांकि, काम करता प्रतीत होता है। – flies

83

PCH = 20 रिटर्न प्रतीक के बीच आकार "।" और 19.

यह भरा प्रतीक (जो शायद आप चाहते हैं)।

इसके अलावा, आर में मूल ग्राफिक्स सिस्टम भी प्रतीक आकार, रंग और आकार पर उपयोगकर्ता को ठीक से नियंत्रित नियंत्रण की अनुमति देता है। जैसे,

dfx = data.frame(ev1=1:10, ev2=sample(10:99, 10), ev3=10:1) 

with(dfx, symbols(x=ev1, y=ev2, circles=ev3, inches=1/3, 
        ann=F, bg="steelblue2", fg=NULL)) 

Graph example

+0

मुझे इस साजिश से प्यार है, लेकिन मैं चाहता हूं कि त्रिज्या उस बिंदु पर अवलोकनों की संख्या के बराबर हो, क्या आप मुझे दिखा सकते हैं कि यह कैसे करें? –

+0

'पीआई * आर^2' (सतह) अवलोकनों की संख्या के आनुपातिक होना चाहिए। – SESman

+5

@saratis यह वही करेगा जो आप चाहते हैं: 'प्रतीकों (x = dfx $ ev1, y = dfx $ ev2, मंडल = sqrt (dfx $ ev3/pi), इंच = 1/3, एन = एफ, बीजी =" steelblue2 ", fg = NULL)' – fmark

15

रूप आरसीएस कहा गया है, cex आधार ग्राफिक्स पैकेज में काम करेगा। मुझे लगता है कि आप ggplot2 में अपना ग्राफ भी करने को तैयार नहीं कर रहे हैं, लेकिन यदि आप करते हैं, वहाँ एक size सौंदर्य विशेषता है, आप आसानी से नियंत्रित कर सकते हैं (ggplot2 उपयोगकर्ता के अनुकूल समारोह तर्क हैं: बजाय ggplot2 में cex टाइपिंग (चरित्र विस्तार), की आप उदाहरण size = 2 टाइप कर सकते हैं और आपको 2 मिमी पॉइंट मिलेगा)।

### base graphics ### 
plot(mpg ~ hp, data = mtcars, pch = 16, cex = .9) 

### ggplot2 ### 
# with qplot() 
qplot(mpg, hp, data = mtcars, size = I(2)) 
# or with ggplot() + geom_point() 
ggplot(mtcars, aes(mpg, hp), size = 2) + geom_point() 
# or another solution: 
ggplot(mtcars, aes(mpg, hp)) + geom_point(size = 2) 
+4

और, यदि आप वास्तव में हजारों अंकों की साजिश कर रहे हैं, तो ggplot2 में यह अच्छा दिखने के कई वैकल्पिक तरीके हैं - अल्फा समायोजन, हेक्स डिब्बे, समोच्च भूखंड, आदि। ggplot2 पुस्तक के 72-77 पृष्ठों को देखें, यदि आपकी लाइब्रेरी में कोई है या यदि आपकी लाइब्रेरी में स्प्रिंगर पुस्तकें तक इलेक्ट्रॉनिक पहुंच है (मुझे लगता है कि अधिकांश आर पुस्तकें वहां हैं)। –

+0

यूप ... ओवरप्लॉटिंग से बचने के लिए, मैं विशेष रूप से स्कैटरप्लॉट में 'अल्फा' का उपयोग करता हूं। – aL3xa