我对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()
答案 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]
提取相应的条形高度。