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

ggplot2绘制双变量重叠直方图时样本计数显示异常问题求助

问题原因

该计数异常是因为geom_histogram默认使用堆叠位置调整(position="stack"),两个分组的柱子会上下堆叠,上层分组的高度实际是两个组对应区间的计数总和,所以会出现高度翻倍、两组高度不均的情况。

解决方案

方案1:设置位置调整为identity,保留原始计数

直接修改geom_histogram的position参数,让两组直方图都从y轴0基线开始绘制,配合设置的alpha透明度就能正常展示重叠效果:

df |>
    pivot_longer(cols = c(peso,peso2), names_to = "caso", values_to = "peso") |>
    ggplot(aes(x = peso, colour= caso,  fill = caso))+
      geom_histogram(alpha = 0.4, position = "identity")

方案2:改用密度统计,适配样本量差异场景

如果后续两组样本量不一致,想要对比分布形态而非绝对计数,可以将y轴映射为密度:

df |>
    pivot_longer(cols = c(peso,peso2), names_to = "caso", values_to = "peso") |>
    ggplot(aes(x = peso, colour= caso,  fill = caso, y = after_stat(density)))+
      geom_histogram(alpha = 0.4, position = "identity")

额外优化建议

可以给geom_histogram添加bins(指定柱子总数)或binwidth(指定单根柱子宽度)参数,避免默认分桶规则带来的显示偏差。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:06:01