我有一些几何分布的数据.当我想看一下时,我会用
sns.distplot(data, kde=False, norm_hist=True, bins=100)
Run Code Online (Sandbox Code Playgroud)
结果是一张图片:
但是,箱柜高度不等于1,这意味着y轴不显示概率,它是不同的.相反,我们使用
weights = np.ones_like(np.array(data))/float(len(np.array(data)))
plt.hist(data, weights=weights, bins = 100)
Run Code Online (Sandbox Code Playgroud)
y轴应显示概率,因为箱高度总和为1:
这里可以更清楚地看到:假设我们有一个列表
l = [1, 3, 2, 1, 3]
Run Code Online (Sandbox Code Playgroud)
我们有两个1,两个3和一个2,所以它们各自的概率是2/5,2/5和1/5.当我们使用带有3个箱子的seaborn histplot时:
sns.distplot(l, kde=False, norm_hist=True, bins=3)
Run Code Online (Sandbox Code Playgroud)
我们得到:
如您所见,第1和第3个bin总和达到0.6 + 0.6 = 1.2,已经大于1,因此y轴不是概率.当我们使用
weights = np.ones_like(np.array(l))/float(len(np.array(l)))
plt.hist(l, weights=weights, bins = 3)
Run Code Online (Sandbox Code Playgroud)
我们得到:
并且y轴是概率,如预期的那样为0.4 + 0.4 + 0.2 = 1.
对于每种情况下使用的两种方法,这两种情况中的箱的数量是相同的:对于几何分布的数据,100个箱,对于具有3个可能值的小阵列l,3个箱.所以箱子数量不是问题.
我的问题是:在用norm_hist = True调用的seaborn distplot中,y轴是什么意思?