2015-06-13 8 views
7

क्षमा करें मेरे पास इस प्रश्न के लिए उदाहरण कोड नहीं है।मैं आर में एक ही ग्राफ में एकाधिक बॉक्सप्लॉट कैसे रखूं?

सभी मैं जानना चाहता हूं कि आर में कई पक्ष-दर-पक्ष बॉक्सप्लॉट बनाना संभव है, जो मेरे डेटा फ्रेम के भीतर विभिन्न कॉलम/चर का प्रतिनिधित्व करता है। प्रत्येक बॉक्सप्लॉट भी एक एकल चर का प्रतिनिधित्व करेगा - मैं वाई-स्केल को (0,6) की श्रेणी में सेट करना चाहता हूं।

यदि यह संभव नहीं है, तो मैं ggplot2 में पैनल विकल्प की तरह कुछ कैसे उपयोग कर सकता हूं यदि मैं केवल एक चर का उपयोग कर बॉक्सप्लॉट बनाना चाहता हूं? धन्यवाद!

आदर्श रूप में, मुझे नीचे दी गई छवि की तरह कुछ चाहिए लेकिन ggplot2 में कारक समूह के बिना कुछ चाहिए। फिर, प्रत्येक बॉक्सप्लॉट पूरी तरह से अलग और एकल कॉलम का प्रतिनिधित्व करेगा।

enter image description here

उत्तर

5

ggplot2 की आवश्यकता है कि आप अपने डेटा y- अक्ष पर साजिश रची जा करने के लिए एक में क्या कर सकते हैं सब कर रहे हैं स्तंभ।

set.seed(1) 
df <- data.frame(
    value = runif(810,0,6), 
    group = 1:9 
) 

df 

library(ggplot2) 
ggplot(df, aes(factor(group), value)) + geom_boxplot() + coord_cartesian(ylim = c(0,6) 

enter image description here

ylim(0,6) सेट y- अक्ष 0 और 6

के बीच अपने डेटा स्तंभों में हैं, तो आप उन्हें में प्राप्त कर सकते हैं होने के लिए:

यहाँ एक उदाहरण है या gather से tidyr से melt का उपयोग करके लम्बाई। (अन्य विधियां भी उपलब्ध हैं)।

+2

नोट: ggplot2 'ylim() 'बॉक्सप्लॉट के प्रदर्शन के लिए डेटा सबसेट के लिए। 'coord_cartesian (ylim =) 'का उपयोग करें –

+1

@AaronKatch अच्छी पकड़ (यदि आप पन क्षमा करें) – jalapic

+0

धन्यवाद, @ जलापिक! तो मैं आपकी सिफारिश के अनुसार tidyr और ggplot2 का उपयोग करके घायल हो गया: 'लंबा <- इकट्ठा (टीम 1, चर, मूल्य, var1: var44) ggplot (लंबा, एईएस (कारक (चर), मान)) + geom_boxplot() + coord_cartesian (ylim = सी (0,6)) 'लेकिन इस अजीब लग रही साजिश के साथ घायल हो गया: http://tinypic.com/r/261z0qg/8। मुझे लगता है कि इसके लिए उचित रूप से अच्छा दिखने के लिए मेरे पास बहुत अधिक चर हैं; इस मामले में, क्या आकार बदलने के लिए कोई विकल्प हैं, या क्या मुझे सिर्फ पैनल प्लॉट छोड़ देना चाहिए और उपयोग करना चाहिए? एक बार फिर धन्यवाद! – poeticpersimmon

5

आप इस अगर आप reshape अपने डेटा लंबे प्रारूप में

## Some sample data 
dat <- data.frame(a=rnorm(100), b=rnorm(100), c=rnorm(100)) 

## Reshape data wide -> long 
library(reshape2) 
long <- melt(dat) 
plot(value ~ variable, data=long) 

enter image description here

+0

धन्यवाद, @LegalizeIt! मैं अपने डेटा को एक लंबे डीएफ में दोबारा बदलने के लिए tidyr का उपयोग करके घायल हो गया: 'लाइब्रेरी (tidyr) लंबा <- इकट्ठा (टीम 1, चर, मूल्य, var1: var44) साजिश (मूल्य ~ चर, डेटा = लंबा)' लेकिन घायल यह अजीब दिखने वाला साजिश: http://tinypic.com/r/2rn77no/8 ... चूंकि मेरे पास 40+ प्लॉट हैं, इसलिए मैं एक साथ निचोड़ने की कोशिश कर रहा हूं, क्या मेरा मूल लक्ष्य म्यूट है? यदि ऐसा है, तो मैं पैनल प्लॉट पर स्विच कर सकता हूं। – poeticpersimmon

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