Python和科学计算认证群组  - 讨论区

标题:pyplot.hist

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哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号