[英]How to Gaussian Fit Histogram?
我有一個pandas.DataFrame
的形式
index ABC
1 -40
2 -30
3 -30
4 -20
5 -20
6 -10
7 -10
8 -10
9 0
10 0
11 0
12 0
13 10
14 10
15 10
16 10
17 20
18 20
19 20
20 30
21 40
我想對“ABC”進行數據分析。
嘗試這個:
_, bins, _ = plt.hist(data, 20, density=1, alpha=0.5)
_, bins, _ = plt.hist(data, 20, density=1, alpha=0.5)
mu, sigma = scipy.stats.norm.fit(data)
best_fit_line = scipy.stats.norm.pdf(bins, mu, sigma)
plt.plot(bins, best_fit_line)
x = data.index.values
y = np.array(data['ABC'])
def lin_interp(x, y, i, half):
return x[i] + (x[i+1] - x[i]) * ((half - y[i]) / (y[i+1] - y[i]))
def half_max_x(x, y):
half = max(y)/2.0
signs = np.sign(np.add(y, -half))
zero_crossings = (signs[0:-2] != signs[1:-1])
zero_crossings_i = np.where(zero_crossings)[0]
return [lin_interp(x, y, zero_crossings_i[0], half),
lin_interp(x, y, zero_crossings_i[1], half)]
hmx = half_max_x(x,y)
fwhm = hmx[1] - hmx[0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.