【发布时间】:2021-01-20 08:16:08
【问题描述】:
我正在尝试生成一个带有误差条的堆叠条形图,该条形图代表每个条形的总可变性。我不想使用闪避的条形图,因为每个条形图有 >10 个类别。
下面我有一些可重现示例的示例数据:
scenario = c('A','A','A','A')
strategy = c('A','A','A','A')
decile = c(0,0,10,10)
asset = c('A','B','A','B')
lower = c(10,20,10, 15)
mean = c(30,50,60, 70)
upper = c(70,90,86,90)
data = data.frame(scenario, strategy, decile, asset, lower, mean, upper)
一旦我们有了data df,我们就可以使用 ggplot2 来创建一个堆叠条:
ggplot(wide, aes(x=decile, y=mean, fill=asset)) +
geom_bar(stat="identity") +
facet_grid(strategy~scenario) +
geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.25)
但是,产生的误差条是针对每个堆叠条的每个单独组件:
感谢我为 df 的每一行提供 lower、mean 和 upper 的结果,但即使我将这些按十分位数相加,我也没有在每行的顶部得到我想要的错误栏条形堆栈。
什么是正确的 ggplot2 代码,或者,启用此功能的正确数据结构是什么?
【问题讨论】:
-
也许你正在寻找这个:
ggplot(data, aes(x=factor(decile), y=mean, fill=asset,group=scenario)) + geom_bar(stat="identity") + facet_grid(strategy~scenario) + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.25)
标签: r ggplot2 bar-chart errorbar