首页 > 解决方案 > 在 ggplot2 中使用 geom_pointrange 着色估计值和区间

问题描述

我正在尝试将估计值和间隔着色为黑色(如果间隔的下限高于 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吗?也就是说,它不会将规则平等地应用于所有方面?

编辑:这已经解决了。请参阅下面的评论部分。

标签: rggplot2facet-grid

解决方案


推荐阅读