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

ggplot2绘制多分组变量比例条形图:比例计算错误修正

修正ggplot2分组比例计算错误

现有代码生成的图表样式符合需求,但比例计算完全错误。例如黄党(yellow party)选民中针对var1选择“no”的实际比例为42%,但图表显示超过60%。无需提前通过分组、汇总、mutate的繁琐步骤,直接修正ggplot代码即可解决。

问题根源

原代码中group=value的设置错误,导致after_stat(prop)的比例计算分母是整个分面(单个政党的所有变量)的样本总数,而非每个政党+变量组合内的样本数,因此结果偏离实际值。

修正后的代码

df %>% 
  pivot_longer(-party) %>% 
  ggplot(aes(y = name, fill = value)) +
  geom_bar(
    aes(x = after_stat(prop), group = interaction(name, party)),
    position = "dodge"
  ) +
  facet_grid(~party)

代码说明

  • 通过group = interaction(name, party)指定比例计算的分组范围:每个政党(party)与变量(name)的组合内,计算各选项(value)的占比,确保分母是该组合的样本总数。
  • position="dodge"保留了原有的并列柱状图样式,每个变量下的不同选项柱子横向排列,符合需求。

验证

运行修正后的代码后,黄党var1的“no”选项比例将正确显示为约42%,与实际统计结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:15:34