直方图交点 - Python

问题描述 投票:0回答:1

我有两个直方图,分别是用

plt.figure(figsize=(30,10))

sns.set()
sns.distplot(A, hist=True, kde=True, bins=50, color = 'darkgrey', hist_kws={'edgecolor':'white'}, kde_kws={'linewidth': 3})
sns.distplot(B, hist=True, kde=True, bins=50, color = 'lightgreen', hist_kws={'edgecolor':'white'}, kde_kws={'linewidth': 3})

plt.xlabel("X")
plt.ylabel("Frequency")
plt.title("A vs B")

现在我需要找到两个直方图之间的交点坐标,有什么办法吗?

直方图

python histogram intersection
1个回答
0
投票

直方图本身并没有 "交集",因为它们是离散的二进制分布。然而,你可以用连续的概率分布来近似每个直方图(这需要你知道数据的分布类型,例如正态分布,对数正态分布)。有了连续概率分布函数(pdfs),您可以将这些pdfs设置为彼此相等,然后求解交点。

离散的类似方法是确定两个分布相交的bin或bin(即直方图A在bin 10-20中大于直方图B,在bin 20-30中小于直方图B,所以 "实际的 "连续pdfs在10-30范围内的某个地方相交。然后,你可以使用某种形式的插值法来估计准确的交点。最简单但不一定是最准确的插值策略是线性插值。

© www.soinside.com 2019 - 2024. All rights reserved.