我有一个堆叠的条形图,类似于下面的示例。
我想在每个条上添加一组或两组水平线(指定颜色和线型),每个条具有不同的值,并将它们添加到图例中。
Titanic.df <- as.data.frame(Titanic)
Titanic.ag <- aggregate( Freq ~ Sex + Class + Age, data=Titanic.df, sum, subset = Survived == "Yes")
bars <- rep(c(0.5, NA, 0.7, NA, 0.6, NA, 0.9, NA), 2)
ggplot(Titanic.ag, aes(x = Class, y = Freq, fill = Sex)) +
geom_bar(position = "fill", stat = "identity") +
facet_grid(~Age) +
geom_errorbar(aes(y = bars, ymin = bars, ymax = bars, col = "Ref1")) +
scale_fill_manual(values = c("darkgreen", "darkblue") ) +
labs(col = "Reference",
fill= "",
y = "Proportion",
x = "Class")
我已经尝试按照几个问题的建议使用 geom_errorbar() ,但我遇到了两件事:
如果我为误差线添加一个值向量,那么 ggplot 期望与数据帧中的长度相同(例如 Titanic.ag 中的 16 个),但堆叠时只有 8 个条形图。这就是我在bars
上面使用 NA 的原因。有替代方案吗?
更重要的是,我想控制颜色和线型,但如果我将这些添加到 geom_bar(),我会失去我的图例。例如
geom_errorbar(aes(y = bars, ymin=bars, ymax=bars, col = "Ref1"), col = "red", linetype = 2)
geom_segment() 是替代方案吗?
编辑错别字,澄清水平线的不同值。