2012-09-13 47 views
5

किसी R में एक scatterplot बनाने का तरीका प्रिज्म के GraphPad में these तरह भूखंडों बनाने के लिए पता है:मैं आर जैसे बॉक्सप्लॉट में एक स्पष्ट स्कैटरप्लॉट कैसे बना सकता हूं?

enter image description here

मैं boxplots उपयोग करने की कोशिश, लेकिन वे डेटा तरह से मैं यह चाहता हूँ प्रदर्शित नहीं करते। ये कॉलम स्कैटरप्लॉट्स जो ग्राफ़पैड उत्पन्न कर सकता है, डेटा को मेरे लिए बेहतर दिखाता है।

किसी भी सुझाव की सराहना की जाएगी।

उत्तर

4

@smillig उल्लेख किया है, आप का उपयोग कर इस लक्ष्य को हासिल कर सकते हैं mtcars उदाहरण डेटा का उपयोग करना ggplot2। नीचे दिया गया कोड साजिश को पुन: उत्पन्न करता है जो आप बहुत अच्छी तरह से कर रहे हैं - चेतावनी यह काफी मुश्किल है। सबसे पहले ggplot2 पैकेज लोड और कुछ डेटा उत्पन्न:

library(ggplot2) 
dd = data.frame(values=runif(21), type = c("Control", "Treated", "Treated + A")) 

अगला डिफ़ॉल्ट थीम बदलने के लिए:

theme_set(theme_bw()) 

अब हम साजिश का निर्माण।

  1. एक आधार वस्तु का निर्माण - कुछ भी नहीं दर्शाया गया है:

    g = ggplot(dd, aes(type, values)) 
    
  2. अंक पर जोड़ें:

    g = g + geom_jitter(aes(pch=type), position=position_jitter(width=0.1)) 
    
  3. पर जोड़ें: प्रकार के अनुसार डिफ़ॉल्ट घबराना और परिवर्तन ग्लिफ़ समायोजित "बॉक्स": गणना करें कि बॉक्स कहां समाप्त होता है। इस मामले में, मैंने औसत मूल्य चुना है। यदि आप बॉक्स नहीं चाहते हैं, तो बस इस चरण को छोड़ दें।

    g = g + stat_summary(fun.y = function(i) mean(i), 
         geom="bar", fill="white", colour="black") 
    
  4. कुछ त्रुटि सलाखों पर जोड़ें: ऊपरी/निचले सीमा की गणना करने और समायोजित बार चौड़ाई:

    g = g + stat_summary(
         fun.ymax=function(i) mean(i) + qt(0.975, length(i))*sd(i)/length(i), 
         fun.ymin=function(i) mean(i) - qt(0.975, length(i)) *sd(i)/length(i), 
         geom="errorbar", width=0.2) 
    
  5. प्रदर्शन साजिश

    g 
    

enter image description here

  1. ऊपर मेरे आर कोड में मैंने फ्लाई पर आवश्यक मूल्यों की गणना करने के लिए stat_summary का उपयोग किया। आप अलग-अलग डेटा फ्रेम भी बना सकते हैं और geom_errorbar और geom_bar का उपयोग कर सकते हैं।
  2. आधार आर का उपयोग करने के लिए, इस question पर मेरे उत्तर पर एक नज़र डालें।
+0

धन्यवाद csgillespie, आपके नंबर 2 लिंक ने मुझे वास्तव में बहुत कुछ दिया जो मुझे चाहिए। लेकिन दोनों महान समाधान हैं। मैंने अपने स्वयं के उपयोग के लिए काफी कुछ tweaked। – crazian

+0

ऐसा करने का उद्देश्य दोनों समूहों के साथ-साथ डेटा पॉइंट्स, और आउटलेटर्स को एक साजिश फ्रेम में दिखाने में सक्षम होना है। यहां कोड है: – crazian

+0

https://gist.github.com/9bfb05dcecac3ecb7491 – crazian

3

यदि आपको ggplot2 पैकेज का उपयोग करने में कोई बात नहीं है, तो geom_boxplot और geom_jitter के साथ समान ग्राफिक्स बनाने का एक आसान तरीका है।

library(ggplot2) 
p <- ggplot(mtcars, aes(factor(cyl), mpg)) 
p + geom_boxplot() + geom_jitter() + theme_bw() 

जो निम्नलिखित ग्राफिक का उत्पादन:

enter image description here

प्रलेखन यहाँ देखा जा सकता: http://had.co.nz/ggplot2/geom_boxplot.html