如何获取对应于给定x的直方图P(x)的柱高?
我对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 个回答
8
hist()
这个函数会给你想要的信息:
n, bins, patches = pl.hist(R, nbins, normed=True)
n
是一个数组,里面存的是每个柱子的高度,而 bins
是一个数组,里面存的是每个区间的边界。在这个例子中,len(n)
的值会是 100,len(bins)
的值会是 101。
如果你有一个 x
值,可以用 numpy.searchsorted()
来找到这个值属于哪个区间,然后用 n[index]
来获取对应的柱子高度。