有没有办法在用分组的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()我的结果是:

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

提前感谢您的帮助!
发布于 2019-06-21 01:45:01
您可以使用geom_bar和position_dodge的width参数来调整这些参数。
geom_bar的width控制每个单独条的宽度。如果为= 1,条将与整个x轴一样宽。(但如果条与每个组重叠,则组之间可能会有空间。)
position_dodge的width控制每组的空间大小。如果为0,则每组中的条形将完全重叠。如果与geom_bar width匹配,则每组中的条形将在边上相互接触。如果为1,则组之间的距离将与每组内的距离相同。
library(ggplot2)
ggplot(data = df.bar, aes(x = diagnosis, y = as.numeric(as.character(number)), fill = factor(status) )) +
geom_bar(stat = "identity", width = 0.4,
position=position_dodge(width = 0.5))+
theme_bw()

https://stackoverflow.com/questions/56691258
复制相似问题