2010年11月22日 星期一 15:44
这个是拿来画正态分布的密度函数的吗?
为什么我画出来的图纵轴上出现了大于1的数呢?
n, bin, patches = plt.hist(x, 37, normed=True, facecolor='green')
x是从一个文件里面读进去的一维数组,难道是读进去的数上面的原因?
还请帮忙解决一下。谢谢
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
2010年11月22日 星期一 18:39
概率密度函数的值可以大于1吧,只是它的积分等于1而已。也就是说图中绿色区域的面积为1。
2010年11月22日 星期一 20:38
哦?那我得再看看以前的东西了,概率以前没好好学,工作了却经常用到,自作孽啊
2010年11月23日 星期二 22:11
我还有一个问题,就是画出了这个图,我要怎样才能知道这个密度函数具体的表达式是什么样的呢?
2010年11月23日 星期二 22:32
需要你事先知道它是什么随机分布,如果这个分布在scipy.stats中有的话,可以调用它们的fit()方法,例如:
import numpy as np
import scipy.stats as stats
data = np.random.normal(size=1000)
stats.norm.fit(data)
如果scipy.stats中没有,但是你知道概率密度函数的表达式,可以使用最优化算法使用概率密度函数对你的统计结果进行拟合,找到待定的参数。
2010年11月23日 星期二 22:49
哦,那我知道了。找到了卡方分布chi2,明天试一下,自己电脑还没装scipy。
那matplotlib.pyplot 里面的hist这个函数并没有调用什么分布是吗?它只是根据你提供的数据计算了值在每个区间出现的概率大小?
2010年11月24日 星期三 06:49
你对hist的理解是正确的,它只是做一个统计而已。
2010年11月24日 星期三 08:44
好的,多谢
Zeuux © 2024
京ICP备05028076号