考虑以下数据(请注意foo实际上是一个因素。):

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

最佳答案

一种可能性是通过'bar'来group。请注意,我也dodge geom_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)

关于r - 用ggplot避开点和误差线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25789434/

10-16 04:04