【发布时间】:2018-02-17 20:04:18
【问题描述】:
我创建了一个 python 脚本,它从文件中绘制一行数据,然后用高斯曲线拟合它。红色阶梯直方图是一组数据,我想将其平均值与真实数据值(蓝色虚线)进行比较。高斯拟合在图表底部几乎看不到,它是一条绿色虚线。我不知道为什么拟合是平坦的而不是曲线,因为计算的平均值和西格玛是正确的;它们是图表的标题。
我的源代码
from scipy.stats import norm
import scipy, pylab
import numpy as np
import matplotlib.pyplot as plt
df = numpy.loadtxt('CR_count_TAL=0.10472.dat',dtype='str')
for num in range(1):
nu=df[num].astype('float')
data = nu[1]
mc=df[2:numpy.size(nu)]
#plot the MC distribution
#hist(nu[2:size(nu)],bins=100,color='r',range=(100,500),histtype='step')
#plot the dataline
axvline(data,color='b',linewidth=2, linestyle='--')
#fit a gaussian
#(mu, sigma) = norm.fit(nu)
plt.hist(nu[2:size(nu)],bins=100,color='r',range=(100,500),histtype='step')
y = mlab.normpdf(bins, mu, sigma)
l = plt.plot(bins, y, 'g', linewidth = 2, linestyle='--')
plt.title(r'$\ \mu=%.3f,\ \sigma=%.3f$' %(mu, sigma))
plt.show()
【问题讨论】:
标签: python curve-fitting gaussian