如何将正态分布曲线添加到多个直方图?

时间:2016-10-20 17:42:58

标签: python-3.x pandas matplotlib normal-distribution

使用以下代码,我创建了四个直方图:

import numpy as np
import pandas as pd

data = pd.DataFrame(np.random.normal((1, 2, 3 , 4), size=(100, 4)))
data.hist(bins=10)

enter image description here

我希望直方图看起来像这样:

enter image description here

我知道如何在当时制作一张图表see here

但是如何在不指定每一个直方图的情况下为多个直方图做到这一点?理想情况下,我可以使用' pd.scatter_matrix'。

1 个答案:

答案 0 :(得分:0)

分别绘制每个直方图并按照您链接的示例对每个直方图进行拟合,或者查看hist api example here。基本上应该做的是

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
fig = plt.figure()
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
for ax in [ax1, ax2, ax3, ax4]:
    n, bins, patches = ax.hist(**your_data_here**, 50, normed=1, facecolor='green', alpha=0.75)
    bincenters = 0.5*(bins[1:]+bins[:-1])
    y = mlab.normpdf( bincenters, mu, sigma)
    l = ax.plot(bincenters, y, 'r--', linewidth=1)
plt.show()