2012-05-24 6 views
7

ファセット付きBoxplotイメージにフリースケールを持たせようとしています。私が望むようggplot2:facet_gridとフリースケールのboxplot

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使用すべきであることを見出した()箱ひげ図を正しく示すことにするためには、即ち

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

、箱ひげ図は正しいあります。しかし、因子の自由尺度(したがって、y軸上)は除去される。現在、各ファセットラインでは、各ファセットで使用可能なファクタだけでなく、データセット全体で利用可能なすべてのファクタが含まれています(図1)。

私は両方の軸でフリースケールを使って正確なファセットを得ることができ、ボックスプロットを正確に描写しています。

誰かが正しい方向に私を指すことができたら、私は感謝するでしょう。

ありがとうございました。

+0

[http://stackoverflow.com/a/10729264/1385941](http://stackoverflow.comに答えるとき、私は同じ問題に気づきました/ a/10729264/1385941)。私の推測は、 'coord_flip()'が 'scale_continuous'ではなく' coord_cartesian'を呼び出すためです。 'scale_'と' coord_'はプロットに違った影響を与えます。 [https://github.com/hadley/ggplot2](https://github.com/hadley/ggplot2) – mnel

+0

このコメントありがとうございました。うまくいけば、誰かが回避策を提供できることを願っています。他のコメントが掲載されていない場合は、この問題を提案した通りに報告します。多分、boxplotsのためにgeom_errorbarhへのアナログも書くことができます。 – coenvh

+0

現在の回避策はありません。 boxplotsは縦のみ(連続変数は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呼び出し、いくつかの色を追加し、X軸ラベルを回転させる - 私は、これはあなたが希望する動作が、少なくともggplot2 2.2でサポートされてちょうど

+0

こちらの例を試しましたが、この場合は縦型のボックスプロットです!これは私が生成したいプロットではありません。私は垂直ではなく水平のボックスプロットを得ようとしていました。だから、基本的に私のポストの最初の例ですが、実際のボックスプロットを取得するのではなく、これらの行... – coenvh

+0

ggplotは水平ボックスのプロットをしないと説明しましたが、ちょうど反転した非常に似たバージョンを作成する方法を示していました – user1617979

+1

はい、以前のコメントから、この明らかなggplotの制限が明確になりました。しかし、まだ私の質問は、縦のボックスプロットについてでした...あなたの提案は、感謝しても、実際に私の問題を解決していない:) – coenvh

1

を反転したいものだと思います.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 
関連する問題