如何获得对应于给定x的直方图P(x)的条形高度?

时间:2011-05-08 10:41:03

标签: python numpy

我对python比较陌生。我使用下面给出的代码绘制了高斯随机数(r)的直方图(比如P(r)),其中我使用了numpy.hist命令。我现在如何得到对应于给定r值的P(r)的值?我的意思是我需要对应于直方图的x轴上的给定值的条高度。我使用的代码如下:

import random 

sig=0.2 # width of the Gaussian

N=100000
nbins=100

R=[]
for i in range(100000):
    r=random.gauss(0,sig)
    R.append(r)
    i=i+1

import numpy as np
import matplotlib.pyplot as pl

pl.hist(R,nbins,normed=True)
pl.show()

1 个答案:

答案 0 :(得分:3)

hist()函数返回您要查找的信息:

n, bins, patches = pl.hist(R, nbins, normed=True)

n是条形高度的数组,bins是区域边界的数组。在给定的示例中,len(n)为100,len(bins)为101。

给定一些x值,您可以使用numpy.searchsorted()查找此值所属的bin的索引,然后使用n[index]提取相应的条形高度。