ggplot2:如何使用geom_bar减小条形之间的宽度和空间

时间:2018-04-28 14:01:41

标签: r ggplot2 data-visualization

我知道可以使用geom_bar参数更改width中条形图的宽度。这确实有效,但随后它会在条形图之间产生更大的差距。有没有办法手动将杆推到一起?我应该以某种方式操纵轴吗?

这是一个例子,在右边将宽度改为0.3以获得所需的条宽。

library(tidyverse)
library(gridExtra)

p1 <- ggplot(iris, aes(Species, Petal.Length)) + geom_bar(stat="summary")
p2 <- ggplot(iris, aes(Species, Petal.Length)) + geom_bar(stat="summary", width=0.3)
grid.arrange(p1,p2,nrow=1)

enter image description here

注意:我知道这个问题与此类似,但缩小差距的答案并不明显。

How to change the space between bars in geom_bar?

2 个答案:

答案 0 :(得分:3)

我会调整情节的宽高比,让ggplot自动为条形分配正确的宽度以及它们之间的间隙:

  ggplot(iris, aes(Species, Petal.Length)) + 
      geom_bar(stat="summary", width=0.4) +
      theme(aspect.ratio = 2/1)

产生这个:

enter image description here

答案 1 :(得分:-1)

设置width = 1来删除其之间的所有空间,而不是减小宽度,以缩小条形但增加条间间距。*

ggplot(iris, aes(Species, Petal.Length, fill=Species)) + geom_bar(stat="summary", width=1)

enter image description here

默认值为0.9,因此您可以通过设置width = 0.95

来获得很小的空间
ggplot(iris, aes(Species, Petal.Length, fill=Species)) + geom_bar(stat="summary", width=0.95)

enter image description here

  • 使用fill=Species,我可以自由地添加颜色,以帮助它们之间没有空格时看到不同的条形。