如何使用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
相关产品推荐
相关产品推荐

