GGplot geom_bar 以均匀间距堆叠项目
GGplot geom_bar stack items with even spacing
我想知道是否有人能为我提供解决方案,因为我想可视化一个看起来像这样的堆叠条形图:
这是用一点 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,这导致每个项目都有相应的大小。但我想让它们相同 height/size.
这可以通过这段代码实现:
ggplot(dt, aes(id, fill = pvalue)) + geom_bar(stat = 'count') + coord_flip()
但是当我 运行 这一点时,我失去了正确着色它们的能力(使用 scale_fill_gradient2)
如果您找到好的解决方案,请告诉我:)
我认为添加 group=
是您想要的:
ggplot(dt, aes(y=id, fill = pvalue, group=id)) +
geom_bar()
如果您定义 y=
,则不需要 coord_flip()
ps,geom_col()
等同于geom_bar(stat = 'identity')
我想知道是否有人能为我提供解决方案,因为我想可视化一个看起来像这样的堆叠条形图:
这是用一点 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,这导致每个项目都有相应的大小。但我想让它们相同 height/size.
这可以通过这段代码实现:
ggplot(dt, aes(id, fill = pvalue)) + geom_bar(stat = 'count') + coord_flip()
但是当我 运行 这一点时,我失去了正确着色它们的能力(使用 scale_fill_gradient2)
如果您找到好的解决方案,请告诉我:)
我认为添加 group=
是您想要的:
ggplot(dt, aes(y=id, fill = pvalue, group=id)) +
geom_bar()
如果您定义 y=
,则不需要 coord_flip()
ps,geom_col()
等同于geom_bar(stat = 'identity')