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

Pyplot hist直方图无显示求助:采样均值分布无法渲染

问题原因与解决方法

问题根源

你用sample(frac=1)做的是无放回全量采样——本质只是把数据集打乱顺序,计算出的均值和原数据集的均值完全一致。这导致ini_sample数组里的500个值全部相同,直方图自然无法渲染出柱子(所有数据点都集中在同一个位置,默认分箱逻辑识别不到分布差异)。

解决方案

方案1:改用有放回的Bootstrap抽样(推荐)

把抽样方式改成有放回,这样每次抽样的样本会有重复,均值就会产生波动,直方图就能正常显示分布:

sns.set()
import numpy as np
import matplotlib.pyplot as plt

ini_sample = np.empty(500)
for i in range(500):
    # 添加replace=True开启有放回抽样
    ini_sample[i] = ini_data['revenue'].sample(frac=1, replace=True).mean()
plt.hist(ini_sample)
plt.axvline(x=ini_data['revenue'].mean(), color='r') # 加颜色区分垂直线
plt.show()

方案2:手动指定分箱(仅用于验证,无实际统计意义)

如果非要保留无放回全采样(这种抽样本身没有统计价值),可以手动设置分箱范围,把唯一的均值包含进去:

plt.hist(ini_sample, bins=[86.8, 87, 87.2])
plt.axvline(x=ini_data['revenue'].mean())
plt.show()

内容的提问来源于stack exchange,提问作者L'Ri Talent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:39:57