r - 在 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
吗?也就是说,它不会将规则平等地应用于所有方面?
编辑:这已经解决了。请参阅下面的评论部分。
解决方案
推荐阅读
- mysql - 检查比赛日期是否在比赛的两个日期之间
- spring-boot - 带有 Spring Boot 2.5 的 OIDC 和 SAML
- apache-spark - PySpark - 将数组结构转换为列名 my Struct
- python - Python数据切片,新的输出值会覆盖之前的值
- java - Android Studio 和 JDK17
- bash - 我无法在 ubuntu 20.04 中保持 bash 脚本存活
- node.js - 使用 node.js 返回 API 请求
- php - 无法通过php保存图像
- hibernate - 休眠@ManyToMany 坚持
- objective-c - 属性在 XCode 13 上有一个先前的声明