2014-09-11 38 views
8

bu verileri (foo aslında bir faktör olduğunu unutmayın.) Düşünün:Atlayış noktaları ve ggplot ile hata çubukları

foo bar outcome ci 
1 a 0.683333333 0.247447165 
2 b 0.941666667 0.180356565 
3 c 0.783333333 0.335337789 
1 d 0.866666667 0.204453706 
2 e 0.45 0.303059647 
3 f 0.325 0.340780173 

Ben CI ile outcome ve hata barları ile, foo değer başına birden bar s çizdirmek istiyorum .

ggplot(ex, aes(foo, outcome, label = bar)) + 
    geom_point(position = position_dodge(.1)) + 
    geom_errorbar(aes(ymin = outcome - ci, ymax = outcome + ci), position = position_dodge(.1)) + 
    geom_text(hjust = 2) 

alıyorum:

Ama çakışmasını görebilirsiniz böylece hata çubukları ve puan atlatmak istedik İşte böyle yapar. Using position_jitter did that, ama tamamen rastgele (veya "clunky") - Bunu istemiyorum.

Bireysel gözlemleri nasıl dengeleyebilirim?

Veya bu bir ggplot hatası mı? example here ayrıca shows this error.

cevap

9

Bir olasılık, 'bar' tarafından group yapılır. Not dodgegeom_text.

dodge <- position_dodge(.1) 

ggplot(data = df, aes(x = foo, y = outcome, group = bar, label = bar)) + 
    geom_point(position = dodge) + 
    geom_errorbar(aes(ymin = outcome - ci, ymax = outcome + ci), position = dodge) + 
    geom_text(hjust = 2, position = dodge) 

enter image description here

+1

Briliant, teşekkürler. Beni “grup” belgelerine yönlendirebilir misiniz veya neden bu durumda çalıştığını (veya ne yaptığını) açıklayabilir misiniz? – slhck

+0

@slhck, “aes_group_order” veya [** burada **] (http://docs.ggplot2.org/current/aes_group_order.html) adresindeki yardım metnine de bakabilirsiniz. tüm örneklerin – Henrik