gpt4 book ai didi

python - 标记曲线之间的最大偏差/距离

转载 作者:行者123 更新时间:2023-12-01 06:49:39 29 4
gpt4 key购买 nike

我只想使用 matplotlib 标记两条曲线之间发生最大偏差的位置。请帮助我。

垂直距离适用于 Kolmogorov–Smirnov test

import numpy as np 
%matplotlib inline
import matplotlib.pyplot as plt
import scipy.stats as stats
#------------------------------------
data=np.random.uniform(low=1,high=10,size=300)
standardized_data=np.sort(data-np.mean(data))/np.std(data)
probs=np.arange(1.0, 301)/300
plt.plot(standardized_data,probs) #curve1
plt.plot(stats.norm.ppf(probs),probs) #curve2
plt.show()

输出: enter image description here

像这样 enter image description here

或者像这样 enter image description here

最佳答案

您需要将其中一条曲线插值到另一条曲线的 x 值上。然后找出它们的差值的最大值。

import numpy as np 
import matplotlib.pyplot as plt
import scipy.stats as stats
#------------------------------------
data=np.random.uniform(low=1,high=10,size=300)
x1= np.sort(data-np.mean(data))/np.std(data)
y = np.arange(1.0, 301)/300

x2 = stats.norm.ppf(y)
yc = np.interp(x1, x2, y)

ind_max = np.argmax((yc-y)**2)


plt.plot(x1, y) #curve1
plt.plot(x2, y) #curve2

plt.axvline(x1[ind_max], color="red", linestyle="dashed", alpha=0.4)
plt.plot([x1[ind_max], x1[ind_max]], [y[ind_max], yc[ind_max]], color="red")
plt.show()

enter image description here

关于python - 标记曲线之间的最大偏差/距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59078622/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com