Python 正常曲线的绘图不…正常

Python 正常曲线的绘图不…正常,python,matplotlib,normal-distribution,Python,Matplotlib,Normal Distribution,我正在绘制测试分数分布图和这些测试分数的拟合曲线: h = sorted(data['Baseline']) #sorted fit = stats.norm.pdf(h, np.mean(h), np.std(h)) plt.plot(h,fit,'-o') plt.hist(h,normed=True) #use this to draw histogram of your data plt.show() 然而,pdf的绘图看起来并不正常(参见x=60附近曲线中的扭结)。见输出

我正在绘制测试分数分布图和这些测试分数的拟合曲线:

h = sorted(data['Baseline'])  #sorted
fit = stats.norm.pdf(h, np.mean(h), np.std(h))
plt.plot(h,fit,'-o')
plt.hist(h,normed=True)      #use this to draw histogram of your data
plt.show()
然而,pdf的绘图看起来并不正常(参见x=60附近曲线中的扭结)。见输出:


我不知道这里发生了什么…感谢你的帮助。这是因为在提供的观测值之间绘制了法线吗?如果需要,我们可以为您提供实际数据,只有60个观测值

是的,您评估了过度服务的标准pdf。相反,您希望创建一些其他数据,如

h = sorted(data['Baseline'])  #sorted
x = np.linspace(h.min(), h.max(), 151)

fit = stats.norm.pdf(x, np.mean(h), np.std(h))

plt.plot(x,fit,'-')
plt.hist(h,normed=True) 
plt.show()

但是请注意,数据看起来根本不是正态分布的。因此,您可能更愿意拟合不同的分布,或者执行内核密度估计。

看起来更像对数正态分布,同意吗。我的问题更多的是关于拟合和plt.plot()-事实证明,我不是在创建一个间隔相等的X向量,而是依靠排序后的数据来确定X。谢谢。但是@Basingaa,你的观点是有道理的:因为值不能小于0,这几乎保证了对数正态分布。“几乎保证”???我们应该非常小心地通过单独查看数据来假设某个分布。策略应该始终是首先根据数据的来源构建模型。然后通过拟合期望分布对模型进行验证。