【问题标题】:geom_bar width in ggplot2 [duplicate]ggplot2中的geom_bar宽度[重复]
【发布时间】:2016-10-19 09:57:13
【问题描述】:

我正在使用 ggplot 生成多面条形图。我的问题是下面的 MWE 在底部生成图表。我希望它生成在两个方面具有相同宽度的条形。我该怎么办?

library(ggplot2)

df = data.frame(x = as.factor(c(1, 2, 3, 1, 2)),
                y = c(2, 3, 4, 5, 6),
                g = c(1, 1, 1, 2, 2));

ggplot(df, aes(x = 1, y = y, fill = x)) +
  geom_bar(stat = "identity",
           position = "dodge") +
  facet_wrap(~ g);

【问题讨论】:

标签: r ggplot2


【解决方案1】:

不确定这是否是您需要的。使用tidyr 包中的complete 函数为缺失因子水平创建占位符还可以使条形宽度在两个方面相同。缺点是第二个情节不平衡。

ggplot(tidyr::complete(df, x, g), aes(x = 1, y = y, fill = x)) +
       geom_bar(stat = "identity", position = "dodge") +
       facet_wrap(~ g);

【讨论】: