GGplot geom_bar 以均匀间距堆叠项目
Posted
技术标签:
【中文标题】GGplot geom_bar 以均匀间距堆叠项目【英文标题】:GGplot geom_bar stack items with even spacing 【发布时间】:2021-09-24 12:11:32 【问题描述】:我想知道是否有人可以为我提供解决方案,因为我想可视化一个看起来像这样的堆叠条形图:
这是用一个小的 data.table 和下面的 ggplot 代码制作的
library(data.table)
library(ggplot2)
dt <- data.table(id = seq(15), pvalue = c(0.0323616533686601, 0.00405825892193357, 0.00406609088355357, 0.00252697950679603, 0.00277696431629866, 0.0212521760053885, 0.0315721033650767, 0.00716594255390525, 0.00829537987151543, 0.0163753389504665, 0.0328650069220695, 0.0146991756928858, 0.0178425139730873, 0.00345987886149332, 0.0499748920124661))
ggplot(dt, aes(1, id, fill = pvalue)) + geom_bar(stat = 'identity')
但我正在寻找一个轻微的修改。数据有一个从 1 到 15 的 id 列,这使得每个项目都有相应的大小。但我希望它们具有相同的高度/大小。
这可以通过这段代码来实现:
ggplot(dt, aes(id, fill = pvalue)) + geom_bar(stat = 'count') + coord_flip()
但是当我运行这个位时,我失去了正确着色它们的能力(使用 scale_fill_gradient2)
如果你找到一个好的解决方案,请告诉我:)
【问题讨论】:
【参考方案1】:我认为添加group=
是您所追求的:
ggplot(dt, aes(y=id, fill = pvalue, group=id)) +
geom_bar()
如果你定义了y=
,你就不需要coord_flip()
ps,geom_col()
与geom_bar(stat = 'identity')
相同
【讨论】:
谢谢!这正是我正在寻找的,您是否也有解决方案来删除条之间的空白位? 添加geom_bar(width = 1)
删除空格。以上是关于GGplot geom_bar 以均匀间距堆叠项目的主要内容,如果未能解决你的问题,请参考以下文章