6

まず、ステージを設定するための簡単な例:

set.seed(123)
dat <- data.frame( 
  x=rep( c(1, 2, 4, 7), times=25 ), 
  y=rnorm(100), 
  gp=rep(1:2, each=50) 
)

p <- ggplot(dat, aes(x=factor(x), y=y))
p + geom_boxplot(aes(fill = factor(gp)))

ボックスプロットの各セットの x 位置を制御することを除いて、同様のプロットを作成したいと思います。x私の最初の推測は、これらのボックス プロットの x 軸に沿った位置を制御する非因子美学を使用することでした。しかし、これをやろうとするとgeom_boxplot、私が望むように美学を解釈しないようです.

p + geom_boxplot( aes(x=x, y=y, fill=factor(gp)) )

特に、geom_boxplotそれらが非因子である場合、何らかの方法ですべての x 値が崩壊するようです。

xggplot2 で boxplotsの位置を制御する方法はありますか? 要素の美学の各レベル間の距離を指定するか、非要素の美学をより巧妙に使用するか、またはその他の方法で?

4

2 に答える 2

5

group美学でもこれを行うことができます。xただし、に渡すことができない理由がわかりませんgroup。これは機能しません:

ggplot() + 
  geom_boxplot(data=dat, aes(x=x, y=y, fill=factor(gp), group=x))

しかし、これは:

ggplot() + 
  geom_boxplot(data=dat, aes(x=x, y=y, fill=factor(gp), group=paste(x, gp)))
于 2013-01-25T19:39:32.850 に答える
5

を使用scale_x_discrete()して、x 軸の位置 (目盛り) を設定できます。

p <- ggplot(dat, aes(x=factor(x), y=y))
p + geom_boxplot(aes(fill = factor(gp))) + 
    scale_x_discrete(limits=1:7)
于 2013-01-25T19:35:30.377 に答える