स्कैल्पलेट बनाने के लिए आर का उपयोग करने का एक अच्छा तरीका क्या है जो उपचार द्वारा डेटा को अलग करता है?


30

मैं सामान्य रूप से आर और सांख्यिकी के साथ बहुत नया हूं, लेकिन मुझे एक स्कैप्लेट बनाने की जरूरत है जो मुझे लगता है कि इसकी मूल क्षमताओं से परे हो सकती है।

मेरे पास टिप्पणियों के वैक्टर के एक जोड़े हैं और मैं उनके साथ एक स्कैप्लेट बनाना चाहता हूं, और प्रत्येक जोड़ी तीन श्रेणियों में से एक में आती है। मैं एक स्कैल्पलॉट बनाना चाहूंगा जो प्रत्येक श्रेणी को अलग करता है, या तो रंग द्वारा या प्रतीक द्वारा। मुझे लगता है कि यह तीन अलग-अलग स्कैप्लेट्स बनाने से बेहतर होगा।

मुझे इस तथ्य के साथ एक और समस्या है कि प्रत्येक श्रेणी में, एक बिंदु पर बड़े क्लस्टर होते हैं, लेकिन क्लस्टर एक समूह में अन्य दो की तुलना में बड़े होते हैं।

क्या किसी को यह करने का एक अच्छा तरीका पता है? पैकेज जो मुझे स्थापित करने और उपयोग करने का तरीका सीखना चाहिए? किसी ने भी कुछ ऐसा ही किया?

धन्यवाद

जवाबों:


53

बड़े क्लस्टर : यदि ओवरप्रिनटिंग एक समस्या है, तो आप या तो कम अल्फा का उपयोग कर सकते हैं, इसलिए सिंगल पॉइंट मंद हैं, लेकिन ओवरप्रिनिंग अधिक तीव्र रंग बनाता है। या आप 2d हिस्टोग्राम या घनत्व अनुमानों पर स्विच करते हैं।

require ("ggplot2")
  • ggplot (iris, aes (x = Sepal.Length, y = Sepal.Width, colour = Species)) + stat_density2d ()
    घनत्व
    आप शायद इसे नया रूप देना चाहते हैं ...

  • ggplot (iris, aes (x = Sepal.Length, y = Sepal.Width, fill = Species)) + stat_binhex (bins=5, aes (alpha = ..count..)) + facet_grid (. ~ Species)
    hexbin
    जब आप इस प्लॉट को बिना पहलुओं के भी खरीद सकते हैं, तो प्रजाति का प्रिनिंग ऑर्डर अंतिम तस्वीर को प्रदर्शित करता है।

  • आप इससे बच सकते हैं यदि आप अपने हाथों को थोड़ा गंदा करने के लिए तैयार हैं (= स्पष्टीकरण और कोड से लिंक करें) और विषमकोण के लिए मिश्रित रंगों की गणना करें: यहां छवि विवरण दर्ज करें

  • एक और उपयोगी चीज उच्च घनत्व क्षेत्रों के लिए डिब्बे (हेक्स) का उपयोग करना है, और अन्य भागों के लिए एकल बिंदुओं की साजिश है:

    ggplot (df, aes (x = date, y = t5)) + 
      stat_binhex (data = df [df$t5 <= 0.5,], bins = nrow (df) / 250) +
          geom_point (data = df [df$t5 > 0.5,], aes (col = type), shape = 3) +
      scale_fill_gradient (low = "#AAAAFF", high = "#000080") +
      scale_colour_manual ("response type", 
        values = c (normal = "black", timeout = "red")) + 
      ylab ("t / s")

    यहां छवि विवरण दर्ज करें


प्लॉटिंग पैकेज की पूर्णता के लिए, मुझे भी उल्लेख करना चाहिए lattice:

require ("lattice")
  • xyplot(Sepal.Width ~ Sepal.Length | Species, iris, pch= 20)
    <code> xyplot (Sepal.Width ~ Sepal.Length | प्रजाति, परितारिका, pch = 20) </ code>

  • xyplot(Sepal.Width ~ Sepal.Length, iris, groups = iris$Species, pch= 20)
    <code> xyplot (Sepal.Width ~ Sepal.Length, iris, groups = iris $ Species, pch = 20) </ code>

  • xyplot(Sepal.Width ~ Sepal.Length | Species, iris, groups = iris$Species, pch= 20)
    <code> xyplot (Sepal.Width ~ Sepal.Length | प्रजाति, परितारिका, समूह = परितारिका $ प्रजाति, पंच = 20) </ code>


लवली! बहुत बहुत धन्यवाद, हेक्स डिब्बे पूरी तरह से चाल चली!
crf

22

यह 'आईरिस' डेटा सेट के लिए क्लासिक समस्याओं में से एक है। यह आर कोड के साथ सेट किए गए डेटा के आधार पर साजिश रचने वाली परियोजनाओं के पूरे सेट की एक कड़ी है, जिसे आप अपनी समस्या के अनुकूल बनाने में सक्षम हो सकते हैं।

यहां एक दृष्टिकोण है जो एक ऐड-ऑन पैकेज के बजाय बेस आर के साथ उपयोग करता है।

plot(iris$Petal.Length, iris$Petal.Width, pch=21, 
     bg=c("red","green3","blue")[unclass(iris$Species)], 
     main="Edgar Anderson's Iris Data")

जो इस आंकड़े का उत्पादन करता है:

यहां छवि विवरण दर्ज करें

वहां से, अपने प्लॉट के आधार पर, आप अल्फा / पारदर्शिता के स्तर के बारे में गड़बड़ करना शुरू कर सकते हैं ताकि ओवरप्लेटिंग आदि की अनुमति मिल सके, लेकिन मैं पहले बहुत ही मूल ग्राफ से निर्माण करूंगा।

जबकि बेस आर के साथ छड़ी करने के कई कारण हैं, अन्य पैकेज प्लॉटिंग को सरल बनाते हैं। एक विशिष्ट विशेषता द्वारा डेटा को अलग करना ggplot2 और जाली पैकेज की ताकत में से एक है। ggplot2 विशेष रूप से नेत्रहीन भूखंड बनाता है। दोनों पैकेज @cbeleites द्वारा उत्तर में प्रदर्शित किए गए हैं।


4
थोड़ा भ्रामक है क्योंकि यद्यपि आप ggplot2 की सलाह देते हैं लेकिन आप अपने उदाहरण में इसका उपयोग नहीं करते हैं? एक ggplot2 समकक्ष वॉडल लाइब्रेरी (ggplot2) हो; कप्लोट (पेटल.लिफ्ट, पेटल.विद, रंग = प्रजाति, डेटा = आइरिस, मुख्य = "एडगर एंडरसन का आइरिस डेटा")। यह भी एक किंवदंती का उत्पादन स्वचालित रूप से लाभ है।
पीटर एलिस

@PeterEllis ऐसा इसलिए है क्योंकि जब मैं ggplot2 के लिए खुद को अच्छी तरह से उधार देने वाली किसी चीज को पहचान सकता हूं, तो मैं केवल आधार ग्राफिक्स के साथ ही निष्क्रिय रूप से सक्षम हूं।
फोमाइट

1
आधार ग्राफिक्स BTW में ग्रेटपास () के साथ शानदार ट्रिक
पीटर एलिस

16

या ggplot2 के साथ:

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) + geom_point()
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point() + facet_grid(~Species)

जो पैदा करता है

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.