Раскраска оценок и интервалов с помощью geom_pointrange в ggplot2

Я пытаюсь раскрасить оценки и интервалы в черный (если нижняя граница интервала выше 1) или серый (если нижняя граница интервала ниже 1). Вот мой код:

p <- ggplot(plot.data)+ scale_y_continuous(breaks = c(0, 1, 2),labels = c("1","2.7","7.4"),name="Odds Ratio")
p <- p + geom_hline(yintercept = 0, colour = gray(1/2), lty = 2)
p <- p + geom_pointrange(aes(x = DV, y = Estimate, ymin = Lower,
                             ymax = Upper),
                         lwd = 1/2, position = position_dodge(width = 1/2),
                         shape = 16,color=ifelse(plot.data$Lower<0,"gray60","black")) #+ facet_grid(Missing ~.)+ theme_classic()
p <- p + xlab(label="Predictor Variable") + theme(axis.text.x=element_text(angle=45,hjust=1,vjust=.6))+theme(strip.text.x = element_blank())
p <- p +  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) + facet_grid(vars(Missing),vars(Number),scales = "free_x",space="free_x")
p

По какой-то причине этот код работает только частично:

введите описание изображения здесь

В частности, есть пара случаев, которые, кажется, не придерживаются правила. Например, посмотрите на "PT" как на переменную предиктора в нижней строке. Это окрашено в черный цвет, даже если нижняя граница интервала пересекает ноль.

Похоже, с верхним рядом проблем не возникает, так что, может быть, это проблема с применением правила facet_grid? То есть, это правило не применяется одинаково ко всем аспектам?

РЕДАКТИРОВАТЬ: Это было решено. Смотрите раздел комментариев ниже.

0 ответов

Другие вопросы по тегам