原文: https://pythonspot.com/matplotlib-histogram/

Matplotlib 可用于创建直方图。直方图在垂直轴上显示频率,水平轴是另一个维度。通常它具有箱,其中每个箱具有最小值和最大值。 每个箱的频率也介于x和无穷大之间。

Matplotlib 直方图示例

下面显示了最小的 Matplotlib 直方图:

  1. import numpy as np
  2. import matplotlib.mlab as mlab
  3. import matplotlib.pyplot as plt
  4. x = [21,22,23,4,5,6,77,8,9,10,31,32,33,34,35,36,37,18,49,50,100]
  5. num_bins = 5
  6. n, bins, patches = plt.hist(x, num_bins, facecolor='blue', alpha=0.5)
  7. plt.show()

输出:

Matplotlib 直方图 - 图1

Python 直方图

完整的 matplotlib 直方图

许多东西都可以添加到直方图中,例如拟合线,标签等。 下面的代码创建了更高级的直方图。

  1. #!/usr/bin/env python
  2. import numpy as np
  3. import matplotlib.mlab as mlab
  4. import matplotlib.pyplot as plt
  5. # example data
  6. mu = 100 # mean of distribution
  7. sigma = 15 # standard deviation of distribution
  8. x = mu + sigma * np.random.randn(10000)
  9. num_bins = 20
  10. # the histogram of the data
  11. n, bins, patches = plt.hist(x, num_bins, normed=1, facecolor='blue', alpha=0.5)
  12. # add a 'best fit' line
  13. y = mlab.normpdf(bins, mu, sigma)
  14. plt.plot(bins, y, 'r--')
  15. plt.xlabel('Smarts')
  16. plt.ylabel('Probability')
  17. plt.title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')
  18. # Tweak spacing to prevent clipping of ylabel
  19. plt.subplots_adjust(left=0.15)
  20. plt.show()

输出:

Matplotlib 直方图 - 图2

Python 直方图

下载示例