आर

2011-10-12 43 views
10

में बॉक्स प्लॉट के कई समूहों को प्लॉटिंग प्लॉटिंग मैं एक ही प्लॉट में दो बॉक्स-प्लॉट प्लॉट करने की कोशिश कर रहा हूं, प्रत्येक एक ही श्रेणी में। मैं व्यक्तिगत रूप से बॉक्सप्लॉट जेनरेट कर सकता हूं, लेकिन जब मैं उन्हें उसी ग्राफ पर लाने का प्रयास करता हूं तो स्टंप हो जाता हूं। 6 boxplots मेंआर

a<-matrix(nrow=100,ncol=3,data=runif(300,max=2)) 
b<-matrix(nrow=100,ncol=3,data=runif(300,max=1)) 
colnames(a)<-c("case 1","case 2","case 3") 
colnames(b)<-c("case 1","case 2","case 3") 
boxplot(cbind(a,b)) 

इस साजिश के परिणाम, एक के लिए पहले 3, तो 3 ख के लिए:

यहाँ मैं अब तक है।

क्या कोई चाल/सरल विकल्प है जो मुझे याद आ रहा है जो मुझे ए और बी के लिए पहला मान देगा, फिर दूसरा और आखिरकार मूल्यों का तीसरा सेट, सभी इस तरह से प्लॉट किए गए हैं, केवल तीन टिक हैं एक्स-अक्ष, प्रत्येक सेट के लिए एक?

बहुत सराहना किसी भी संकेत दिए गए,

इयान

उत्तर

8
boxplot(a, at = 0:2*3 + 1, xlim = c(0, 9), ylim = range(a, b), xaxt = "n") 
boxplot(b, at = 0:2*3 + 2, xaxt = "n", add = TRUE) 
axis(1, at = 0:2*3 + 1.5, labels = colnames(a), tick = TRUE) 

नोट ylim = range(a, b) पैरामीटर। प्लॉट स्केल को पहले कमांड द्वारा निर्धारित किया जाता है, लेकिन यदि बी में मूल्यों की सीमा से बाहर मूल्य शामिल हैं (इस मामले में नहीं, लेकिन ए और बी को स्वैप करने का प्रयास करें), तो वे साजिश से बाहर रहेंगे। यही कारण है कि आपको सामान्य रूप से यूलि निर्दिष्ट करना चाहिए।

आप axis() कमांड में टिक = FALSE भी सेट कर सकते हैं, मुझे लगता है कि यह अच्छा है। यदि आपको समूहों के बीच की जगह पसंद नहीं है, तो के बजाय 0:2*2 का उपयोग करें, और xlim apropriatelly को बदलें।

+0

यह बढ़िया है! बहुत - बहुत धन्यवाद – Iain