के लिए स्थान मजबूर करना मैं बहु-स्तर वाले समूह वाले बॉक्सप्लॉट्स के लिए "रिक्त स्थान" रखने की कोशिश कर रहा हूं।ggplot2: खाली दूसरी-स्तरीय श्रेणी
set.seed(42)
n <- 100
dat <- data.frame(x=runif(n),
cat1=sample(letters[1:4], size=n, replace=TRUE),
cat2=sample(LETTERS[1:3], size=n, replace=TRUE))
ggplot(dat, aes(cat1, x)) + geom_boxplot(aes(fill=cat2))
मैं मजबूर हैं समूहों में से एक रिक्त:
dat <- subset(dat, ! (cat1 == 'b' & cat2 == 'B'))
table(dat$cat1, dat$cat2)
##
## A B C
## a 9 9 7
## b 8 0 5
## c 13 11 6
## d 11 10 5
ggplot(dat, aes(cat1, x)) + geom_boxplot(aes(fill=cat2))
दूसरे समूह, "बी", अब जगह को भरने के लिए विस्तार किया गया है । क्या मैं चाहता है:
SO 9818835 (प्रकट करने के लिए एक खाली स्तर के लिए मजबूर) शीर्ष स्तर पर ठीक काम करता है, लेकिन मैं समझ नहीं कैसे इसके बारे में एक दूसरे स्तर के लिए काम करने के लिए प्राप्त करने के लिए श्रेणियाँ। scale_x_discrete(...)
में, मैं सेटिंग की कोशिश की:
breaks=letters[1:4]
breaks=LETTERS[1:3]
breaks=list(letters[1:4], LETTERS[1:3])
(वार)breaks=NULL
breaks=func
जहांfunc <- function(x, ...) { browser(); 1; }
आदेश का निवारण करने के लिए; यह केवलletters[1:4]
की पेशकश की और कभी भी दूसरे स्तर
interactions(letters[1:4], LETTERS[1:3])
का उपयोग करने से कभी भी खाली स्थान नहीं छोड़ा गया। मैंने x
मूल्य से बाहर की सीमा को इंजेक्शन करके scale_y_continuous(limits)
के साथ स्क्रीन को मजबूर कर एक कामकाज की कोशिश की, लेकिन ggplot2
मेरे लिए बहुत स्मार्ट है और फिर अंतर को बंद कर देता है।
क्या सुरुचिपूर्ण हैं (यानी, ggplot2
तंत्र में "सही") समाधान?
डेटा कैसे सुंदर यह होने की जरूरत है की कोशिश नहीं होगा? ऐसा लगता है कि इन रिकॉर्ड्स के लिए 'x' शून्य पर सेट करना कुछ ऐसा लगता है जो काफी उचित दिखता है। '<- dat %>% उत्परिवर्तन (x = ifelse (cat1 == 'b' और cat2 == 'बी', 0, x))' – akhmed
यह शानदार प्रोग्रामेटिक रूप से है (और मैंने पहले से ही यह कोशिश की थी, 'scale_y_continuous (सीमाएं) ' कदम), लेकिन जब मैं अपने दृश्यों की बात करता हूं तो मैं थोड़ा ओसीडी हूं: मैं हमेशा साजिश के नीचे विचलित रेखा पर नजर रखूंगा। – r2evans
प्लस "एक लाइन का मतलब डेटा नहीं है" और "एक पंक्ति मान 0 के एक डेटा बिंदु इंगित करता है" के बीच सांख्यिकीय अंतर है। – r2evans