GGplot geom_bar 以均匀间距堆叠项目

时间:2021-07-15 15:04:56

标签: r ggplot2 geom-bar

我想知道是否有人对我有解决方案,因为我想可视化一个看起来像这样的堆积条形图: enter image description here

这是用一点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')

但我正在寻找一个轻微的修改。数据有一个 id 列,范围从 1 到 15,这会导致每个项目都有相应的大小。但我想让它们具有相同的高度/大小。

这可以通过这段代码实现:

ggplot(dt, aes(id, fill = pvalue)) + geom_bar(stat = 'count') + coord_flip()

但是当我运行这一点时,我失去了正确着色它们的能力(使用 scale_fill_gradient2) enter image description here

如果你找到一个好的解决方案,请告诉我:)

1 个答案:

答案 0 :(得分:1)

我认为添加 group= 是您所追求的:

ggplot(dt, aes(y=id, fill = pvalue, group=id)) + 
    geom_bar() 

如果你定义了 y= 你就不需要 coord_flip()

ps,geom_col()geom_bar(stat = 'identity')

相同

enter image description here