Matplotlib 直方圖

Matplotlib 也可用於建立直方圖。直方圖顯示垂直軸上的頻率,水平軸顯示另一個維度。通常它有條形塊,每個條形塊都有最小值和最大值,它表示的頻率也在 x 和無窮大之間。

Matplotlib 直方圖示例

下面我們展示最小的 Matplotlib 直方圖:

import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

x = [21,22,23,4,5,6,77,8,9,10,31,32,33,34,35,36,37,18,49,50,100]
num_bins = 5
n, bins, patches = plt.hist(x, num_bins, facecolor='blue', alpha=0.5)
plt.show()

輸出:

![Python 直方圖](/img/Tutorial/Matplotlib/Matplotlib histogram.svg)

完整的 Matplotlib 直方圖

可以將許多東西新增到直方圖中,例如擬合線、標籤等。下面的程式碼建立了一個更高階的直方圖。

#!/usr/bin/env python

import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

mu = 100 # mean of distribution
sigma = 15 # standard deviation of distribution
x = mu + sigma * np.random.randn(10000)

num_bins = 20
n, bins, patches = plt.hist(x, num_bins, normed=1, facecolor='blue', alpha=0.5)
y = mlab.normpdf(bins, mu, sigma)
plt.plot(bins, y, 'r--')
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')
plt.subplots_adjust(left=0.15)
plt.show()

輸出:

![Matplotlib 具有更詳細資訊的直方圖](/img/Tutorial/Matplotlib/Matplotlib histogram with more information.svg)