【发布时间】:2023-04-01 15:37:01
【问题描述】:
试图制作一个简单的直方图(工作),但在归一化时(密度=1) - 它给出了不正确的 y 值,因为所有的值加起来应该是 1
Dataset = [10,10.2,10.4,10.6,10.8,11.0,11.2]
Freqset = [1,3,7,9,6,5,2]
data =[]
for i in range(len(Dataset)):
for j in range(Freqset[i]):
data.append(Dataset[i])
print(data)
bins = len(Dataset)
plt.hist(data,bins,histtype='bar', density = 1,rwidth=0.8,alpha=0.5)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title(f'Histogram')
plt.show()
【问题讨论】:
-
请注意,
plt.hist
有一个weights=
参数,因此您可以直接从频率创建直方图:plt.hist(Dataset, bins, weights=Freqset, density=1)
。另请注意,对于离散数据,通常更希望明确设置数据点之间的 bin 边界,例如bins = np.arange(9.9, 11.4, 0.2)
,防止酒吧的奇怪定位。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:为什么归一化直方图给出了错误的 y 值(都应该加起来为 1)? Python matplotlib [重复] - Python技术站