2017-11-09 12 views
0

facet_wrapでボックスプロットを生成すると、ggplot2はボックス間に多くのスペースを残します。私はそれらをより広くしたいと思っています。ggplot2のfacet_wrapでボックスプロットの最大幅を増やす

library(ggplot2) 
packageVersion("ggplot2") 
ggplot(diamonds, aes(x = cut, y = price)) + 
    geom_boxplot(varwidth = FALSE) + 
    facet_wrap("color") 

Figure 1

私はそれはそれはそれぞれのパネルにプロットする必要はありません。因子レベルの組み合わせをプロットする必要がある場合にスペースを残しているからだと考えています。これを確認するために、cutであるcolorの新しい変数を使って同様のプロットを生成し、それをx軸にプロットし、colorscales = "fixed"というファセットをラップします。両方のプロットでボックスの幅が同じように見えます。

library(dplyr) 
diamonds2 <- mutate(diamonds, CUTxCOLOR = paste(cut, color, sep = ".")) 
ggplot(diamonds2, aes(x = CUTxCOLOR, y = price)) + 
    geom_boxplot(varwidth = FALSE) + 
    facet_wrap("color", scales = "fixed") 

Figure 2

この取り掛かる方法についての任意のアイデアをいただければ幸いです。

答えて

1

geom_boxplotの幅パラメータは、トリックを行う必要があります。

ggplot(diamonds, aes(x = cut, y = price)) + 
    geom_boxplot(width = .6, position = "dodge") + 
    facet_wrap("color") 
+0

グレート、ありがとうございました。私はちょうどggplot2 v2.2.1.9000のデフォルトの "geom_boxplot"の位置を "dodge2"に追加します。幅が1より小さい場合、実際にはボックスが小さくなり、幅が1より大きい場合は、ボックスがx軸上に揃わないようになります。私は 'position =" dodge "'を指定しなければならなかったが、それはうまくいった。 –

+0

これはデフォルトの 'preserve'引数が' position_dodge() 'と' position_dodge2() 'の' 'single ''の '' total' [ref](https://github.com/tidyverse/ggplot2/issues/2290)。これは同様に機能します: 'geom_boxplot(position = position_dodge2(preserve =" total "))' –

関連する問題