2014-09-11 2 views
8

Рассмотрим эти данные (обратите внимание, что foo на самом деле является фактором.):уворачиваясь точек и баров ошибка с ggplot

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 

Я хочу построить несколько bar с на foo значение, с их outcome и ошибок баров с CI , Вот что я делаю:

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) 

я получаю:

Но я хотел, чтобы увернуться от баров ошибок и точек, так что я могу видеть перекрытие. Using position_jitter did that, но это было совершенно случайно (или "clunky"). Я не хочу этого.

Как я могу компенсировать отдельные наблюдения?

Или это ошибка с ggplot? example here также shows this error.

ответ

9

Одна из возможных - group от «bar». Обратите внимание, что я также 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, спасибо. Можете ли вы указать мне на документацию «группы» или объяснить, почему она работает (или что она делает) в этом случае? – slhck

+0

@slhck. Вы можете посмотреть текст справки в '? Aes_group_order' или [** здесь **] (http://docs.ggplot2.org/current/aes_group_order.html), где вы также найдете выход всех примеров. – Henrik

Смежные вопросы