2011-12-14 5 views
5

ggplot boxplotでは、ジッタを使用してさまざまなジッタの度合いの生データポイントを簡単に追加できます。ジッタがゼロの場合、次のコードは、ggplot boxplotのジッタポイントを1つオフセットすることができます

dat <- data.frame(group=c('a', 'b', 'c'), values = runif(90)) 

ggplot(dat, aes(group, values)) + 
geom_boxplot(outlier.size = 0) + 
geom_jitter(position=position_jitter(width=0), aes(colour=group), alpha=0.7) + 
ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') + 
opts(legend.position = "right") + ylab("values") + xlab("group") 

が生成されます。

ゼロジッタを使用することはできますが、ポイントが一列に並んでいますが、ボックス幅の25%左にシフトするようなオフセットを追加できますか?私はgeom_pointdodgeを試しましたが、これはジッタを生成しました。 enter image description here

答えて

7

グループを数値に変換してオフセットを追加すると、目的の出力が得られたようです。私は右のそれをシフト

ggplot(dat, aes(group, values)) + 
    geom_boxplot(outlier.size = 0) + 
    geom_point(aes(x = as.numeric(group) + .25, colour=group), alpha=0.7) + 
    ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') + 
    opts(legend.position = "right") + ylab("values") + xlab("group") 

enter image description here

+0

が、明らかにあなたは0.25を減算することにより、それらが同様に左に移動することができますまたは任意の数はあなたを与える:あり、より効果的/効率的な方法は、おそらくですが、この旋回を与えますあなたが守っている外観。 – Chase

+0

非常に良い。ありがとう! – user441706

関連する問題