如何缩放histplot数据?数据缩放后直方图无变化求助
解决直方图缩放后外观不变及数据归一化到最大值为1的问题
问题原因
你当前的缩放逻辑(除以l²)无法保证数据最大值为1,而且seaborn.histplot默认统计频数(每个区间内的数据点数量)——不管怎么缩放数据的数值范围,只要数据点的分布比例不变,柱子的高度就不会变,所以直方图看起来外观一致。
正确实现步骤
- 将数据归一化到最大值为1
直接用数据自身的最大值做分母,确保缩放后最大值固定为1:
pa = np.array(pa) # 归一化到最大值为1 pa = pa / pa.max() fig, ax = plt.subplots() # 默认频数统计,柱子高度不变,但x轴刻度会变为0-1范围 sns.histplot(pa, kde=True) plt.grid(True) plt.show()
- 让直方图外观随缩放变化(可选)
如果想要缩放后直方图的高度也发生变化,把统计方式改成密度(stat="density"),这样柱子高度反映的是概率密度,会随数据范围缩放而调整:
pa = np.array(pa) pa = pa / pa.max() fig, ax = plt.subplots() # 用密度统计,缩放后直方图外观会变化 sns.histplot(pa, kde=True, stat="density") plt.grid(True) plt.show()
内容的提问来源于stack exchange,提问作者Michal
相关产品推荐
相关产品推荐

