在ggplot2中的栏之间添加空格

Aar*_*ron 30 r ggplot2

亲爱的,我想在ggplot2中的栏之间添加空格.本页提供了一个解决方案:http://www.streamreader.org/stats/questions/6204/how-to-increase-the-space-between-the-bars-in-a-bar-plot-in-ggplot2.但是,此解决方案不是使用x轴分组的因子级别,而是创建一个数字序列x.seq,以手动放置条形,然后使用width()参数对它们进行缩放.但是,当我使用x轴的因子级别分组时,width()不起作用,如下例所示.

library(ggplot2)

Treatment <- rep(c('T','C'),each=2)
Gender <- rep(c('M','F'),2)
Response <- sample(1:100,4)
df <- data.frame(Treatment, Gender, Response)

hist <- ggplot(df, aes(x=Gender, y=Response, fill=Treatment, stat="identity"))
hist + geom_bar(position = "dodge") + scale_y_continuous(limits = c(0, 
    100), name = "") 
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何获得与链接示例中相同的效果,但在使用因子级别分组时?

干杯,

亚伦

koh*_*ske 77

这是你想要的吗?

hist + geom_bar(width=0.4, position = position_dodge(width=0.5))
Run Code Online (Sandbox Code Playgroud)
  • widthin geom_bar确定条的宽度.
  • widthin position_dodge确定每个柱的位置.

在玩了一段时间之后,你可能很容易理解他们的行为.

在此输入图像描述

  • 如果我想将每组的条形保持在一起(例如这里的'C'和'T'条)但是想要改变组之间的间距(这里是'M'和'F')怎么办? (7认同)
  • `geom_histogram()`中的`width`在现代ggplot2(> = 2.1.0)中已弃用. (4认同)
  • 关于user5359531的问题,请参见此处:/sf/ask/3632501281/ Between-grouped-bars-in-ggplot2 (2认同)
  • 由于 kohske 没有描述它们是如何工作的:“geom_bar”中的“width”是 x 轴条形组的宽度。`position_dodge` 中的 `width` 是每个 x 轴组内条形的宽度。宽度“1”表示条/组相互接触。宽度 &lt; 1 在条之间或组之间添加空间。 (2认同)