我试图绘制不同的点,其中一些是观察结果(因此没有误差线),其他是预测(有误差线)。我使用 position_dodge 来放置我的点,但是由于误差线缺少值,我找不到将误差线与它们各自的点匹配的方法。
下面我尝试根据我的数据集制作一个简单的可重现示例。
a <- data.frame(taxon = "plants", type = c(rep("observation", 3), "prediction"), period = c("1970-2017", "2000-2009", "2010-2017", "2017"), value = 1:4, lwr = c(NA, NA, NA, 3.5), upr = c(NA, NA, NA, 4.5))
a
#> taxon type period value lwr upr
#> 1 plants observation 1970-2017 1 NA NA
#> 2 plants observation 2000-2009 2 NA NA
#> 3 plants observation 2010-2017 3 NA NA
#> 4 plants prediction 2017 4 3.5 4.5
这是我用于 ggplot 的代码:
ggplot(a) +
geom_point(aes(x = taxon,
shape = type,
y = value,
col = period),
position = position_dodge(width = .5)) +
geom_errorbar(aes(x = taxon,
ymin = lwr, ymax = upr),
position = position_dodge(width = .5))
如您所见,误差条居中,很可能是因为 和 中的缺失值lwr已upr
被省略,而它应该位于右上角。到目前为止,我所有解决此问题的尝试(即,使用不同的设置position_dodge,尝试指定preserve参数)均未成功,并且我无法在互联网上找到帮助。



