R 如何创建带有ggplot2的堆叠直方图?
我想创建一个堆叠的柱状图,底部显示R 如何创建带有ggplot2的堆叠直方图?,r,histogram,ggplot2,R,Histogram,Ggplot2,我想创建一个堆叠的柱状图,底部显示cancelled==TRUE,顶部显示cancelled==FALSE。不过,我似乎不明白。你知道我如何在使用ggplot2时做到这一点,同时维护facet环绕源代码吗 以下是我目前拥有的: ggplot(data, aes(x=days, fill="canceled")) + geom_histogram(binwidth=1, position="stack") + facet_wrap(~source, ncol=2, scale="f
cancelled==TRUE
,顶部显示cancelled==FALSE
。不过,我似乎不明白。你知道我如何在使用ggplot2时做到这一点,同时维护facet环绕源代码吗
以下是我目前拥有的:
ggplot(data, aes(x=days, fill="canceled")) +
geom_histogram(binwidth=1, position="stack") +
facet_wrap(~source, ncol=2, scale="free_y") +
coord_cartesian(xlim=c(0, 21))
我的数据:
days,source,canceled
1,ABC,TRUE
1,ABC,FALSE
1,ABC,TRUE
2,ABC,FALSE
2,XYZ,FALSE
那么,您至少应该首先在ggplot命令中删除单词“cancelled”周围的引号。这会导致真值和假值的颜色不同,并且堆叠在另一个值的顶部,这比之前的要好,但是,它仍然会将真值堆叠在顶部,将假值堆叠在底部,这与您要求的相反。我不确定如何控制堆叠顺序(毕竟,您可能首先使用ggplot2,以便将许多详细的低级显示决策委派出去),但这至少解决了一半的问题。下面是我对您的代码稍加修改的版本和显示的结果。
库(ggplot2)
天数由于您需要通过变量cancelled
获得不同的填充值,因此应使用不带引号的填充值。要以相反的顺序进行堆叠,您可以使用参数order=
,并将cancelled
设置为负值
ggplot(data, aes(x=days, fill=canceled,order=-canceled)) +
geom_bar(binwidth=1, position="stack") +
facet_wrap(~source, ncol=2, scale="free_y") +
coord_cartesian(xlim=c(0, 21))
对于其他通过谷歌来到这里寻找如何使用ggplot2
制作堆叠直方图的简单示例的人:
ggplot(diamonds, aes(price, fill = cut)) +
geom_histogram(binwidth = 500)
更多信息
ggplot(diamonds, aes(price, fill = cut)) +
geom_histogram(binwidth = 500)