我有一些几何分布的数据。当我想看它的时候,我用
sns.distplot(data, kde=False, norm_hist=True, bins=100)
这是一幅图片:
然而,垃圾箱的高度不等于1,这意味着y轴不显示概率,这是不同的。如果我们用
weights = np.ones_like(np.array(data))/float(len(np.array(data)))
plt.hist(data, weights=weights, bins = 100)
Y轴应表示概率,如垃圾箱高度之和为1:
这里可以更清楚地看到:假设我们有一个列表
l = [1, 3, 2, 1, 3]
我们有两个1s,两个3s和一个2,所以它们各自的概率分别是2/5,2/5和1/5。当我们使用带有3个回收箱的海上组织图时:
sns.distplot(l, kde=False, norm_hist=True, bins=3)
我们得到:
正如你所看到的,第1和第3桶之和为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)
我们得到:
Y轴是概率,和预期的0.4+0.4+0.2=1一样。
在这两种情况下,这两种方法的回收箱数量是相同的: 100箱几何分布数据,3箱小阵列l,3个可能值。所以垃圾箱的数量不是问题。
我的问题是:在海运中叫做norm_hist=True,y轴的意思是什么?
发布于 2018-08-03 07:23:07
来自文档
norm_hist:bool,可选 如果为真,则直方图高度显示的是密度而不是计数。这是隐含的,如果一个KDE或拟合的密度被绘制。
所以你也需要考虑你的垃圾箱宽度,也就是计算曲线下的面积,而不仅仅是垃圾箱高度的总和。
发布于 2019-09-11 16:41:42
X轴是变量的值,就像直方图中的,但是y轴到底代表什么?。
密度图中的y轴是核密度估计的概率密度函数。然而,我们需要小心地指明这是一个概率密度,而不是一个概率。区别是,概率密度是x轴上单位的概率。为了转换成一个实际的概率,我们需要在x轴上找到曲线下的一个特定区间的面积。有点困惑,因为这是一个概率密度,而不是一个概率,y轴可以取大于1的值。密度图的唯一要求是曲线下的总面积为1。我通常倾向于把密度图上的y轴看作是不同类别之间的相对比较的值。
从https://towardsdatascience.com/histograms-and-density-plots-in-python-f6bda88f5ac0的参考
发布于 2022-11-15 13:28:15
这段代码将帮助您制作如下内容:
sns.set_style("whitegrid")
ax = sns.displot(data=df_p,
x='Volume_Tonnes', kind='kde', fill=True, height=5, aspect=2)
# Here you can define the x limit
ax.set(xlim=(-50,100))
ax.set(xlabel = 'Volume Tonnes', ylabel = 'Probability Density')
ax.fig.suptitle("Volume Tonnes Distribution",
fontsize=20, fontdict={"weight": "bold"})
plt.show()
https://stackoverflow.com/questions/51666784
复制相似问题