python - 如何在 python 中绘制概率质量函数

标签 python numpy probability-density

如何创建一个直方图来显示给定范围为 0-1 的数字 x 数组的概率分布?我希望每个柱状图 <= 1,如果我将每个柱状图的 y 值相加,它们应该加起来为 1。

例如,如果 x=[.2, .2, .8] 那么我希望图表显示 2 个条形图,一个在 .2 处,高度为 .66,一个在 .8 处,高度为 .33。

我试过:

matplotlib.pyplot.hist(x, bins=50, normed=True)

这给了我一个直方图,其中的条形高于 1。我并不是说这是错误的,因为根据文档,这是归一化参数将执行的操作,但这并没有显示概率。

我也试过:

counts, bins = numpy.histogram(x, bins=50, density=True)
bins = bins[:-1] + (bins[1] - bins[0])/2
matplotlib.pyplot.bar(bins, counts, 1.0/50)

这也为我提供了 y 值总和大于 1 的条。

最佳答案

我认为我原来的术语不对。我有一组连续值 [0-1),我想将其离散化并用于绘制概率质量函数。我认为这可能很常见,足以保证使用一种方法来做到这一点。

代码如下:

x = [random.random() for r in xrange(1000)]
num_bins = 50
counts, bins = np.histogram(x, bins=num_bins)
bins = bins[:-1] + (bins[1] - bins[0])/2
probs = counts/float(counts.sum())
print probs.sum() # 1.0
plt.bar(bins, probs, 1.0/num_bins)
plt.show()

关于python - 如何在 python 中绘制概率质量函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19503366/

相关文章:

r - 如何绘制以相同均值为中心的二项式 PDF 分布

matlab - 如何在 Matlab 中显示 100x1 矢量数据的经验 pdf?

python - 如何使用 python 和 clang 获取 typedef 详细信息

python - 获取 Pandas read_csv() 读入的 dtypes 字典

python - django 检查过期后功能

python - 如何在PyQt4中连接QTreeWidget和QStackedWidget?

python - pandas 数据帧上 bool 运算符的时间复杂度

python - 如何使用 datestr2num 而不是 strpdate2num

python - 如何将 (7, 3, 3, 3) 数组传递给 Fortran 子例程?

machine-learning - 向量 x 的概率