2011-12-14 14 views
5

में एक जिगप्लॉट boxplot में जिटर पॉइंट ऑफ़सेट कर सकता है, जिटर की अलग-अलग डिग्री के साथ कच्चे डेटा पॉइंट जोड़ने के लिए जिटर का उपयोग करना आसान है। शून्य जिटर के साथ निम्नलिखित कोडggplot boxplot

dat <- data.frame(group=c('a', 'b', 'c'), values = runif(90)) 

ggplot(dat, aes(group, values)) + 
geom_boxplot(outlier.size = 0) + 
geom_jitter(position=position_jitter(width=0), aes(colour=group), alpha=0.7) + 
ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') + 
opts(legend.position = "right") + ylab("values") + xlab("group") 

नीचे साजिश का उत्पादन करता है।

क्या शून्य जिटर का उपयोग करना संभव है लेकिन ऑफसेट जोड़ें जैसे कि अंक एक पंक्ति में हैं लेकिन बॉक्स चौड़ाई के 25% तक बाएं स्थानांतरित हो गए हैं? मैंने को dodge के साथ आजमाया लेकिन इससे एक जिटर उत्पन्न हुआ। enter image description here

उत्तर

7

यदि हम समूह को न्यूमेरिक में परिवर्तित करते हैं और फिर ऑफ़सेट जोड़ते हैं, तो आपको अपना वांछित आउटपुट मिल रहा है।

ggplot(dat, aes(group, values)) + 
    geom_boxplot(outlier.size = 0) + 
    geom_point(aes(x = as.numeric(group) + .25, colour=group), alpha=0.7) + 
    ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') + 
    opts(legend.position = "right") + ylab("values") + xlab("group") 

enter image description here

+0

मैं उन्हें सही स्थानांतरित कर दिया, लेकिन स्पष्ट रूप से आप उन्हें साथ ही छोड़ दिया स्थानांतरित कर सकते हैं .25 को घटा कर या जो भी नंबर पर आप देता है: वहाँ शायद एक अधिक प्रभावी/कारगर तरीका है, लेकिन यह एक बार आज़माएंगे देखो आप के बाद हैं। – Chase

+0

बहुत अच्छा। धन्यवाद! – user441706