【发布时间】:2020-03-09 01:06:53
【问题描述】:
我想将从某些分布中随机生成的采样值与这些分布的实际函数进行比较。
我目前使用matplotlib 进行绘图,numpy 进行采样。
我找到了一个我想要实现的工作示例
# read mu, sigma, n
x = np.random.normal(mu, sigma, n)
count, bins, ignored = plt.hist(x, bins="auto", density=True)
plt.plot(bins, 1 / (sigma * np.sqrt(2 * np.pi)) * np.exp(-(bins - mu) ** 2 / (2 * sigma ** 2)), linewidth=2, color='r')
plt.show()
所以x 是样本数组,他们使用直方图绘制它,并为函数使用实际的 pdf。
例如,这对二项分布有何作用? 我遵循了类似的模式:
x = np.random.binomial(N, P, n)
count, bins, ignored = plt.hist(x, bins="auto", density=True)
plt.plot(bins, scipy.special.comb(N, bins) * (P ** bins) * ((1 - P) ** (N - bins)), linewidth=2, color='r')
plt.show()
但是我得到的图表看起来并不正确:
好吧,pdf 的高度似乎与直方图不匹配。我究竟做错了什么?是二项式函数吗?
【问题讨论】:
标签: python matplotlib