我尝试使用numpy.random.normal 文档中的示例绘制归一化直方图。为此,我生成了正态分布的随机样本。
mu_true = 0
sigma_true = 0.1
s = np.random.normal(mu_true, sigma_true, 2000)
Run Code Online (Sandbox Code Playgroud)
然后我将正态分布拟合到数据并计算 pdf。
mu, sigma = stats.norm.fit(s)
points = np.linspace(stats.norm.ppf(0.01,loc=mu,scale=sigma),
stats.norm.ppf(0.9999,loc=mu,scale=sigma),100)
pdf = stats.norm.pdf(points,loc=mu,scale=sigma)
Run Code Online (Sandbox Code Playgroud)
显示拟合的 pdf 和数据直方图。
plt.hist(s, 30, density=True);
plt.plot(points, pdf, color='r')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我使用density=True,但很明显,pdf 和直方图没有标准化。
有什么建议可以绘制真正归一化的直方图和 pdf?
Seaborn distplot 也没有解决问题。
import seaborn as sns
ax = sns.distplot(s)
Run Code Online (Sandbox Code Playgroud)