Ggplot2 [बंद] के साथ पहलुओं में अप्रयुक्त स्तरों को छोड़ना


19

क्या यह उन स्तरों को गिराना संभव है जो ggplot2s पहलुओं में उपयोग नहीं किए जाते हैं? यह मेरा कोड है:

tab = as.data.frame(cbind(groups = mtcars$cyl, names = row.names(mtcars), val = mtcars$mpg, N = mtcars$disp))
tab$N = as.numeric(tab$N)

ggplot(tab, aes(names,val)) + 
geom_point() + coord_flip() + 
theme_bw() + 
facet_grid(groups ~ ., drop=TRUE)#, scales="free", as.table=F, space="free")

मैं drop=Tस्विच की कोशिश की, लेकिन यह मदद नहीं करता है। मैं क्या गलत कर रहा हूं?


इस तरह के शुद्ध प्रोग्रामिंग (आँकड़े नहीं) के लिए, कृपया StackOverflow पर जाएँ
smci

जवाबों:


27

आपके उदाहरण के डेटा को छोड़ने के लिए कोई अप्रयुक्त स्तर नहीं है। इस उदाहरण में व्यवहार की जाँच करें:

dat <- data.frame(x = runif(12),
                  y = runif(12),
                  grp1 = factor(rep(letters[1:4],times = 3)),
                  grp2 = factor(rep(LETTERS[1:2],times = 6)))

levels(dat$grp2) <- LETTERS[1:3]

ggplot(dat,aes(x = x,y = y)) + 
    facet_grid(grp1~grp2,drop = FALSE) + 
    geom_point()

ggplot(dat,aes(x = x,y = y)) + 
    facet_grid(grp1~grp2,drop = TRUE) + 
    geom_point()

यह हो सकता है कि आप प्रत्येक पहलू में ऊर्ध्वाधर अक्ष पर साजिश रचने वाले कारकों को बदलना चाह रहे हों, जिस स्थिति में आप scalesतर्क सेट करना चाहते हैं और उपयोग करना चाहते हैं facet_wrap:

ggplot(tab, aes(names,val)) + 
    geom_point() + coord_flip() + 
    theme_bw() + 
    facet_wrap(~groups,nrow = 3,scales = "free_x")

ओह, अब मैं देखता हूं कि यह क्या करता है। मेरा इरादा हर पहलू में केवल उन स्तरों की साजिश करना था, जो वास्तव में पहलू द्वारा समूहीकृत हैं। की तरह, मेरी टैब उदाहरण का उपयोग, dotchart(as.numeric(tab$val), labels=tab$names, groups=tab$groups)। क्या यह संभव है?
मृदुरू

@ श्रीराम हां, मेरा संपादन देखें
जोरान

21
भविष्य के पाठकों के लिए, प्लॉट के किसी भी पहलू dropमें किसीscales भी कारक स्तर का उपयोग नहीं किया गया है , जबकि प्लॉट के किसी विशेष पहलू में उपयोग नहीं किए गए किसी भी कारक स्तर को गिराता है। मुझे इस पोस्ट से समझने में थोड़ा समय लगा, इसलिए मैंने सोचा कि मैं यहां स्पष्ट करूंगा कि किसी और को परेशानी से बचाया जाए।
जेक फिशर

@JakeFisher इसे इंगित करने के लिए धन्यवाद! काफी मददगार!
स्टीवन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.