You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整ggplot2堆叠条形图的堆叠顺序为DIC-POC-DOC?

修改ggplot堆叠条形图的堆叠顺序

要把堆叠顺序从DIC-DOC-POC改成DIC-POC-DOC,关键是手动指定Type列的因子水平顺序——ggplot的堆叠顺序是跟着因子水平走的,默认按字母排序,所以我们要手动调整。另外注意你代码里数据框名写错了,应该是df而非dat,修正后的完整代码如下:

df <- read.table(header=T, sep=" ", text="
ID Date Type Value
A-1 2017-08-31 DIC 26.870107
A-2 2017-08-31 DIC 54.216603
A-3 2017-08-31 DIC 18.487286
A-1 2017-08-31 DOC 51.897025
A-2 2017-08-31 DOC 33.599756
A-3 2017-08-31 DOC 78.904307
A-1 2017-08-31 POC 21.232867
A-2 2017-08-31 POC 12.183641
A-3 2017-08-31 POC 2.60840")

# 手动指定Type的因子水平顺序,匹配目标堆叠顺序
df$Type <- factor(df$Type, levels = c("DIC", "POC", "DOC"))

ggplot(df, aes(y=Value, x=ID, fill=Type)) + 
    geom_bar(position='stack', stat='identity')

原理说明:

  • ggplot绘制堆叠条形图时,fill变量的因子水平顺序直接决定堆叠层级,默认按字母排序(DOC < DIC < POC),所以手动把水平顺序改成c("DIC", "POC", "DOC")后,堆叠时就会从上到下呈现你想要的DIC-POC-DOC顺序。
  • 调整后图例的顺序也会和堆叠顺序保持一致,不需要额外设置。

内容的提问来源于stack exchange,提问作者Sandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:09:28