用ggplot2 geom_bar()绘制稍微分开的组内条

时间:2019-06-20 17:37:30

标签: r ggplot2 plot geom-bar

有没有一种方法可以使用分组bar_plot()制成的每个分组条之间有一点间距?就像不同的组之间的距离较大,而组内的条带之间的距离较小,但又不会彼此粘在一起。

这里是整个代码:

### my DF generation
df.bar <- as.data.frame( cbind(
                                "diagnosis" = rep( names_DX, 2 ) ,
                                "number" = as.numeric(c(9,18,43,8,34,12,3,7,38,12,8,6)),
                                "status" = c(1,1,1,1,1,1,0,0,0,0,0,0)
                                ))
df.bar$diagnosis <- factor(df.bar$diagnosis,levels(df.bar$diagnosis)[c(1,5,6,2:4)]) #reorder levels for plot

### plot generation
p <-    ggplot(data = df.bar, aes(x = diagnosis, y = as.numeric(as.character(number)), fill = factor(status) )) +
            geom_bar(stat = "identity", position=position_dodge())+
            theme_bw()

我的结果:

sticked bars

我想得到什么(忽略颜色差异等,仅针对条形位置):

separated bars

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用widthgeom_bar的{​​{1}}参数进行调整。

position_dodge的{​​{1}}控制每个小节的宽度。如果为geom_bar,则条形图将与整个x轴一样宽。 (尽管如果条形图与每个组重叠,则组之间可能会有间隔。)

width的{​​{1}}控制每个组的分配空间。如果为零,则每个组中的条将完全重叠。如果与= 1 position_dodge相匹配,则每个组中的条将在侧面相互接触。如果为1,则组之间的距离将与每个组内部的距离相同。

width

enter image description here