如何获取对应于给定x的直方图P(x)的柱高?

4 投票
1 回答
8299 浏览
提问于 2025-04-16 17:13

我对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] 来获取对应的柱子高度。

撰写回答