簡體   English   中英

ggplot2:帶有facet_grid和自由縮放的boxplot

[英]ggplot2: boxplot with facet_grid and free scale

我試圖在帶有刻面的Boxplot圖像上有自由比例。

使用此示例數據集,如果我嘗試這樣做:

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

繪制不正確的箱圖http://dl.dropbox.com/u/9788680/plot1.png

在這里,自由尺度完全按照我的意願實現,y軸的不同尺度取決於水平面規則的可用因子的數量。 然而,箱圖未被正確描繪(即,實線而不是箱線圖)。 在搜索解決方案時,我發現我應該使用coord_flip()以便正確描繪箱形圖,即

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

繪制正確的boxplot,但沒有縮放http://dl.dropbox.com/u/9788680/plot2.png

在上圖中,箱圖現在是正確的。 但是,去除了因子(因此在y軸上)的自由標度。 現在,對於每個水平構面線,現在包括數據集中的所有可用因子,而不是僅包含每個構面可用的因子(如圖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

我昨天獨立地注意到水平bxoplots顯示為線條 - 我不確定它是否是一個bug或一個功能,或者它可以改變

在你的情況下,我這樣做了

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,還有facets = _grid調用,添加了一些顏色和旋轉的x標簽 - 我想這就是你想要翻轉的東西

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM