跨面条形图中的条形宽度相等

3
我有一个数据框,长这样:

category = c(rep("house", 2), rep("apartment", 4), rep("condo", 3))
sample = paste("ID", seq(1:9), sep='')
group = c(rep(1,9), rep(2,9))
value = c(0.990000, 0.608143, 0.451284, 0.500343, 0.482670, 0.358965, 0.393272, 0.300472, 0.334363, 0.001000, 0.391857, 0.548716, 0.499657, 0.517330, 0.641035, 0.606728, 0.699528, 0.665637)
data = as.data.frame(cbind(category, sample, group, value))

我想使用变量“category”来对堆叠条形图进行facet_wrap,就像这样:
ggplot(data, aes(x=sample, y=value, fill=group)) + 
  geom_bar(stat="identity", width=1) +
  facet_wrap(facet ~ ., scales="free_x")

每个类别中的样本数量不均,但ggplot会自动使每个条形图具有相同的宽度,这意味着跨图的条形不具有相同的宽度,就像这样:

enter image description here

有没有一种方法可以强制ggplot保持所有条形的宽度相同,以便每个条形图的总体宽度在不同的图中是不同的?

谢谢任何提示!


我不是很清楚您想要什么输出?您可以解释一下吗? - Ronak Shah
1个回答

8
尝试使用facet_grid
ggplot(data, aes(x = sample, y = value, fill = group)) + 
    geom_bar(stat = "identity", width = 1, col = "black") +
    facet_grid(. ~ category, scales = "free", space = "free")

1
感谢@d.b的建议,解决了我的问题! - nrcombs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接