Я пытаюсь уклониться от пары средств и доверительных интервалов для двух моделей, используя ggplot. Я рассмотрел похожие вопросы, такие как this и this, но их код не касается моей проблемы.Интервалы уклонения в ggplot
У меня есть следующие кадр данных (обратите внимание, что условие является одним из факторов, значения увеличиваются, как вы спускаетесь вниз фрейм данных):
>print(dat)
condition pH lowerH upperH model
1 Black 650 0.7863719 0.6863438 0.8548062 pdp
2 Black 650 0.8428675 0.7123000 0.9574000 ddm
3 White 650 0.8133078 0.7310262 0.8864712 pdp
4 White 650 0.8211373 0.6838000 0.9488000 ddm
5 Black 800 0.8754109 0.7908725 0.9306012 pdp
6 Black 800 0.9408192 0.8410000 0.9941000 ddm
7 White 800 0.9044102 0.8349587 0.9623462 pdp
8 White 800 0.9183600 0.8145000 0.9867000 ddm
9 Black 950 0.9003072 0.8403200 0.9601112 pdp
10 Black 950 0.9569349 0.8812000 0.9967000 ddm
11 White 950 0.9131546 0.8494812 0.9648262 pdp
12 White 950 0.9473685 0.8683000 0.9934000 ddm
13 Black 1100 0.9091797 0.8342850 0.9622412 pdp
14 Black 1100 0.9708420 0.8864000 0.9977000 ddm
15 White 1100 0.9274862 0.8636063 0.9691300 pdp
16 White 1100 0.9570067 0.8727000 0.9954000 ddm
Я пытаюсь построить среднюю (рН) и доверительный интервал (lowerH, upperH) для каждого условия в зависимости от используемой модели (модели). Я бы хотел, чтобы средства и CI были уклонились, чтобы они не перекрывались. Я написал следующий код: ggplot
ggplot(dat, aes(x = condition, y = pH)) +
geom_point(size = 3, shape = 5) + #pred cond mean
geom_pointrange(aes(ymin = lowerH, ymax = upperH), size = .2) + #95% HDI
coord_cartesian(ylim = c(.5, 1.01)) + #adjust x-axis
ylab("Hit Rate") + #label y axis
theme_bw() + #black and white theme
theme(axis.title.x = element_blank(),
panel.background = element_blank(),
panel.grid = element_blank(),
panel.border = element_rect(colour = "black", fill = NA, size = 1))
который создает этот выход
Как вы можете видеть, что средства и Cis для обеих моделей перекрываются. Однако, когда я пытаюсь уклониться от них, как я сделал в приведенном ниже коде, мне остается только перемещать все точки данных влево (с использованием средств модели и CI, которые все еще перекрываются).
ggplot(dat, aes(x = condition, y = pH)) +
geom_point(size = 3, shape = 5, position = position_dodge(5)) + #pred cond mean
geom_pointrange(aes(ymin = lowerH, ymax = upperH), size = .2) + #95% HDI
coord_cartesian(ylim = c(.5, 1.01)) + #adjust x-axis
ylab("Hit Rate") + #label y axis
theme_bw() + #black and white theme
theme(axis.title.x = element_blank(),
panel.background = element_blank(),
panel.grid = element_blank(),
panel.border = element_rect(colour = "black", fill = NA, size = 1))
Что я ищу - это способ уклониться от средств модели и CI, чтобы они не пересекались. Пример кода особенно полезен.
Возможный дубликат [уворачиваясь точек и погрешностями с ggplot] (http://stackoverflow.com/questions/25789434/dodging-points-and-error-bars-with-ggplot) – aosmith