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

如何使用ggplot2创建100%堆叠条形图?技术求助

100%堆叠条形图实现方案

要在ggplot2中生成100%堆叠条形图,核心是给geom_bar()添加position = "fill"参数,同时调整y轴为百分比显示,以下是修改后的完整代码:

# 先加载必要包(如果未加载)
library(ggplot2)
library(scales)

ggplot(andmed, aes(x = eesmärk, fill = factor(Class))) + 
  geom_bar(position = "fill") +  # 关键:position="fill"实现100%堆叠
  scale_fill_brewer(type = "div", palette = 2) + 
  labs(x = "eesmärk/kaaslane", y = "protsent", fill = "Klass") + 
  ggtitle("...") +
  scale_y_continuous(labels = percent_format())  # 将y轴转为百分比格式

关键说明:

  • position = "fill"必须放在geom_bar()的参数中(而非aes()内部),这样ggplot才能识别并将每个x分组的条形高度统一为1(即100%),按占比堆叠。
  • scale_y_continuous(labels = percent_format())依赖scales包,作用是把y轴的小数数值(0-1)转换成百分比显示,和你目标图的y轴格式匹配。
  • 原代码中的group = Class可以省略,因为fill = factor(Class)已经自动完成了分组逻辑。

如果之前出现"无法识别position参数"的报错,大概率是参数位置错误(比如误放到aes()里)或拼写错误,按上述代码调整即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:00:30