2012-05-24 17 views
7

के साथ बॉक्सप्लॉट मैं बॉक्सप्लॉट छवि पर फ़ेसटिंग के साथ निःशुल्क स्केल करने की कोशिश कर रहा हूं।ggplot2: facet_grid और free scale

इस उदाहरण डाटासेट का उपयोग करना, अगर मैं इस प्रयास करें:

ggplot(data=mpg) + 
geom_boxplot(aes(x=cty, y=model))+ 
facet_grid(manufacturer ~ drv, scales = "free", space = "free") 

Plot incorrect boxplot http://dl.dropbox.com/u/9788680/plot1.png

यहाँ, मुक्त तराजू y- अक्ष पर निर्भर करता है के लिए अलग तराजू बिल्कुल लागू किया जाता है के रूप में मैं चाहूँगा, एक क्षैतिज पहलू नियम के लिए उपलब्ध कारकों की संख्या। बॉक्सप्लॉट्स को सही ढंग से चित्रित नहीं किया गया है (यानी बॉक्सप्लॉट्स के बजाय ठोस लाइनों के रूप में)। जब एक समाधान के लिए खोज, मैं ने पाया कि मैं coord_flip() क्रम में उपयोग करना चाहिए boxplot सही ढंग से चित्रित किया जा करने के लिए अर्थात

ggplot(data=mpg) + 
geom_boxplot(aes(x=model,y=cty))+ 
facet_grid(manufacturer ~ drv, scales = "free", space = "free")+ 
coord_flip() 

Plot correct boxplot, but no scaling http://dl.dropbox.com/u/9788680/plot2.png

ऊपर चित्र में, boxplots अब सही हैं। हालांकि, कारकों के लिए मुक्त पैमाने (इसलिए वाई-अक्ष पर) हटा दिए जाते हैं। अब, प्रत्येक क्षैतिज पहलू रेखा के लिए, डेटासेट में मौजूद सभी उपलब्ध कारक अब प्रत्येक पहलू के लिए उपलब्ध कारकों (चित्रा 1 में) के बजाय शामिल हैं।

मैं जानना चाहता हूं कि मैं दोनों अक्षरों पर एक मुक्त पैमाने के साथ सही पहलू कैसे प्राप्त कर सकता हूं, सही ढंग से बॉक्सप्लॉट को दर्शाता हूं।

अगर कोई मुझे सही दिशा में इंगित कर सकता है, तो मैं आभारी रहूंगा।

धन्यवाद।

+0

मैं जब जवाब दे ही समस्या देखा [http://stackoverflow.com/a/10729264/1385941](http://stackoverflow.com/एक/10729264/१३८५९४१)। मेरा अनुमान है क्योंकि 'coord_flip()' कॉल 'coord_cartesian'' scale_continuous' नहीं है। 'scale_' और' coord_' साजिश को अलग-अलग प्रभावित करते हैं। यह [https://github.com/hadley/ggplot2 ](https://github.com/hadley/ggplot2) – mnel

+0

पर 'समस्या' के रूप में रिपोर्ट करने के लायक हो सकता है। इस टिप्पणी के लिए धन्यवाद। उम्मीद है कि कोई कामकाज प्रदान कर सकता है। यदि कोई अन्य टिप्पणी पोस्ट नहीं की गई है तो मैं सुझाव के अनुसार इस मुद्दे की रिपोर्ट करूंगा। हो सकता है कि geom_errorbarh का एक एनालॉग बॉक्सप्लॉट्स के लिए भी लिखा जा सके। – coenvh

+0

कोई मौजूदा कामकाज नहीं है; बॉक्सप्लॉट केवल लंबवत हैं (निरंतर परिवर्तनीय y है) और केवल 'coord_flip()' के साथ फ़्लिप किया जा सकता है, लेकिन यह आपके जैसा दिखने वाले पहलू स्केल को गड़बड़ कर देता है। Https://groups.google.com/d/msg/ggplot2/u5a1mpnJR7E/XxwXWNDX77MJ –

उत्तर

0

मैं कल देखा स्वतंत्र रूप से कि क्षैतिज bxoplots लाइनों के रूप में पता चलता है - मुझे यकीन है कि अभी तक नहीं कर रहा हूँ अगर यह एक बग, या एक सुविधा है, या यह आपके मामले में

बदला जा ca, मैं इस

किया
library(ggplot2) 
ggplot(data=mpg) + 
    geom_boxplot(aes(y=cty, x=model,fill=model))+ 
    facet_grid(manufacturer~drv, scales = "free", space = "free")+theme(axis.text.x=element_text(angle=90),legend.position="none") 

बस x और y, और भी पहलुओं = _grid कॉल उलट, कुछ रंग जोड़ा गया है और एक्स लेबल घुमाया - मुझे लगता है कि यह है कि क्या तुम सिर्फ फ़्लिप करना चाहते हैं

+0

मैंने आपके उदाहरण की कोशिश की, लेकिन इस मामले में ये * वर्टिकल * बॉक्सप्लॉट्स हैं! यह वह साजिश नहीं है जिसे मैं उत्पन्न करना चाहता था।मैं क्षैतिज बॉक्सप्लॉट प्राप्त करने की कोशिश कर रहा था, लंबवत नहीं। तो मूल रूप से मेरी पोस्ट में पहला उदाहरण है, लेकिन फिर वास्तविक बॉक्सप्लॉट प्राप्त करना, इन लाइनों को नहीं ... – coenvh

+0

यह समझाया गया है कि ggplot क्षैतिज बॉक्स प्लॉट नहीं करता है, मैं आपको दिखा रहा था कि आप एक बहुत ही समान संस्करण कैसे बना सकते हैं बस – user1617979

+1

हां, पिछली टिप्पणियों से यह स्पष्ट ggplot सीमा स्पष्ट हो गई। हालांकि, मेरा सवाल लंबवत बॉक्सप्लॉट्स के बारे में था ... इसलिए आपका सुझाव, हालांकि सराहना की, वास्तव में मेरी समस्या हल नहीं करता :) – coenvh

1

वांछित व्यवहार कम से कम ggplot2 2.2 के रूप में समर्थन कर रहा है .1।


library(ggplot2) 
ggplot(data=mpg[which(mpg$manufacturer %in% c('audi', 'hyundai', 'jeep')),]) + 
    geom_boxplot(aes(x=model,y=cty)) + 
    facet_grid(manufacturer ~ drv, scales = "free", space = "free") + 
    coord_flip() 

sessionInfo() 
#> R version 3.3.2 (2016-10-31) 
#> Platform: x86_64-apple-darwin13.4.0 (64-bit) 
#> Running under: OS X El Capitan 10.11.6 
#> 
#> locale: 
#> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 
#> 
#> attached base packages: 
#> [1] stats  graphics grDevices utils  datasets methods base  
#> 
#> other attached packages: 
#> [1] ggplot2_2.2.1 
#> 
#> loaded via a namespace (and not attached): 
#> [1] Rcpp_0.12.11   digest_0.6.12  rprojroot_1.2  
#> [4] plyr_1.8.4   grid_3.3.2   gtable_0.2.0   
#> [7] backports_1.0.5  magrittr_1.5   evaluate_0.10.1  
#> [10] scales_0.4.1.9002 rlang_0.1.1.9000  stringi_1.1.5  
#> [13] reshape2_1.4.2  lazyeval_0.2.0  rmarkdown_1.6.0.9001 
#> [16] labeling_0.3   tools_3.3.2   stringr_1.2.0  
#> [19] munsell_0.4.3  yaml_2.1.14   colorspace_1.3-2  
#> [22] htmltools_0.3.6  knitr_1.16   tibble_1.3.3