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

如何在Julia中为计数型Y轴的直方图添加密度曲线?

在Julia中为直方图添加密度曲线并保留计数值Y轴

要实现Y轴为计数值的直方图+密度曲线,核心是将密度函数(pdf)的结果按直方图的bin宽度和样本总数缩放,让曲线的数值范围和计数值对齐。具体实现如下:

解决思路

原代码用normalize=true把直方图转换成了密度值(Y轴总和为1),我们需要:

  • 先绘制常规计数值直方图,获取bin的宽度参数
  • 用「样本总数 × bin宽度」作为缩放因子,把pdf的结果放大到计数值尺度
  • 最后叠加缩放后的密度曲线

完整代码示例

# 安装并导入依赖包
Pkg.add("Plots")
Pkg.add("Distributions")
using Distributions, Plots

# 生成测试数据
dist = Normal(0, 1)
data = rand(dist, 1000)
n_samples = length(data)

# 绘制计数值直方图,同时保存直方图对象用于提取bin信息
hist = histogram(data, label="计数值直方图")
# 提取bin宽度:取第一个bin的右边界与左边界的差值
bin_width = hist[1][1][2] - hist[1][1][1]

# 计算缩放因子,将pdf值转换为计数值尺度
scale_factor = n_samples * bin_width
# 叠加缩放后的密度曲线
plot!(x -> pdf(dist, x) * scale_factor, xlim=xlims(), label="密度曲线(计数值尺度)", linewidth=2)

关键细节说明

  • 从直方图对象中提取bin_width:直方图的底层bin边界数据存在hist[1][1]中,相邻两个边界的差就是单个bin的宽度
  • 缩放因子的逻辑:密度函数的积分结果是1,乘以样本数得到"总概率对应的样本量",再乘以bin宽度就对应到每个bin的预期计数值,确保曲线与直方图的Y轴尺度完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:46:03