相关疑难解决方法(0)

用python拟合直方图

我有一个直方图

H=hist(my_data,bins=my_bin,histtype='step',color='r')
Run Code Online (Sandbox Code Playgroud)

我可以看到形状几乎是高斯的,但我想用高斯函数拟合这个直方图并打印我得到的均值和西格玛的值.你能帮助我吗?

python histogram curve-fitting

40
推荐指数
4
解决办法
11万
查看次数

高斯适合python中的scipy.optimize.curve_fit,结果错误

我在为数据拟合高斯时遇到了一些麻烦.我认为问题是大多数元素接近于零,实际上没有多少要点.但无论如何,我认为他们制作了一个很好的数据集,而且我没有得到令人困惑的python.这是程序,我还添加了一行来绘制数据,这样你就可以看到我想要的东西

#Gaussian function
def gauss_function(x, a, x0, sigma):
    return a*np.exp(-(x-x0)**2/(2*sigma**2))

# program
from scipy.optimize import curve_fit
x = np.arange(0,21.,0.2)
# sorry about these data!
y = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.2888599818864958e-275, 1.0099964933708256e-225, 4.9869496866403137e-184, 4.4182929795060327e-149, 7.2953754336628778e-120, 1.6214815763354974e-95, 2.5845990267696154e-75, 1.2195550372375896e-58, 5.6756631456872126e-45, 7.2520963306599953e-34, …
Run Code Online (Sandbox Code Playgroud)

python curve-fitting scipy

7
推荐指数
1
解决办法
2万
查看次数

使用MatPlotLib和Numpy将高斯拟合到直方图 - 错误的Y缩放?

我编写了下面的代码,以使高斯曲线适合直方图.它似乎有效,虽然Y缩放是不同的.我究竟做错了什么?

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab

list = [0,1,1,2,2,2,3,3,4]

plt.figure(1)
plt.hist(list)
plt.xlim((min(list), max(list)))

mean = np.mean(list)
variance = np.var(list)
sigma = np.sqrt(variance)
x = np.linspace(min(list), max(list),100)
plt.plot(x,mlab.normpdf(x,mean,sigma))

plt.show()
Run Code Online (Sandbox Code Playgroud)

谢谢!

python numpy matplotlib

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×3

curve-fitting ×2

histogram ×1

matplotlib ×1

numpy ×1

scipy ×1