kmo*_*ley 7 python numpy probability-density
如何创建一个直方图,显示给定数字x的范围为0-1的概率分布?我希望每个条形<= 1,如果我将每个条形的y值相加,它们应该加起来为1.
例如,如果x = [.2,.2,.8],那么我希望图形显示2个条形图,一个在.2处,高度为.66,一个在.8处,高度为.33.
我试过了:
matplotlib.pyplot.hist(x, bins=50, normed=True)
Run Code Online (Sandbox Code Playgroud)
这给了我一个高于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)
Run Code Online (Sandbox Code Playgroud)
这也给了我的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()
Run Code Online (Sandbox Code Playgroud)