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

Ale*_*lex 2 r data-visualization ggplot2

我知道可以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)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

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

如何在geom_bar中更改条之间的间距?

Dan*_*nid 6

不要减小宽度,这样会缩小条形,但会增加条形间的空间,而是设置width = 1为删除之间的所有空间。*

ggplot(iris, aes(Species, Petal.Length, fill=Species)) + geom_bar(stat="summary", width=1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

默认值为0.9,因此您可以通过设置获得非常小的空间width = 0.95

ggplot(iris, aes(Species, Petal.Length, fill=Species)) + geom_bar(stat="summary", width=0.95)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 使用 时fill=Species,我冒昧地添加了颜色,以帮助在没有空格时看到不同的条形。

  • 这并不能真正回答问题,因为OP想要专门减小间隙大小,而不仅仅是用更宽的条掩盖它们。 (8认同)

onl*_*tom 5

我将调整图的纵横比,并ggplot自动为条形分配正确的宽度以及它们之间的间隙:

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

产生这个:

在此处输入图片说明