我想创建一个堆叠的直方图,显示canceled == TRUE
在底部和canceled == FALSE
顶部。不过,我似乎无法弄清楚。有什么想法我可以使用ggplot2做到这一点,同时又保持多面包装源代码吗?
这是我目前拥有的:
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命令中“取消”一词的引号开始。这样会导致TRUE和FALSE值的颜色不同并且相互堆叠,这比您以前的值要好,但是,它仍然在顶部堆叠TRUE和在底部堆叠FALSE,与您要求的相反。我不确定如何控制堆栈顺序(毕竟,您大概是在使用ggplot2来委派许多详细的低层显示决定),但这至少可以解决一半的问题。我对您的代码进行了非常轻微的修改,并显示了以下结果。
library(ggplot2)
days <- c(1, 1, 1, 2, 2)
source <- c("ABC", "ABC", "ABC", "ABC", "XYZ")
canceled <- c(TRUE, FALSE, TRUE, FALSE, FALSE)
data <- data.frame(days, source, canceled)
print(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)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句