Matplotlib 繪製箱線圖

Suraj Joshi 2020年12月31日
Matplotlib 繪製箱線圖

本教程解釋了我們如何使用 Python 中的 matplotlib.pyplot.boxplot() 函式建立一個箱線圖。

通過給出資料的最小值、第一四分位數、中位數、第三四分位數和最大值的位置資訊,箱線圖可以幫助我們深入瞭解資料。

Matplotlib 中的 boxplot

import matplotlib.pyplot as plt

x = [4, 5, 6, 8, 9, 10, 10, 11, 11, 12, 13, 14, 15, 15, 15, 17, 18, 19, 22, 23, 25]

plt.boxplot(x)
plt.title("Boxplot Using Matplotlib")
plt.show()

輸出:

在 Python 中使用 Matplotlib 繪製的 Bexplot 圖

它從給定的資料 x 中繪製一個箱線圖。在箱線圖中,方框從 Q1 延伸到 Q3;方框內的水平線代表資料的中位數。波形圖中的晶須從資料的 Q3 延伸到資料的最大值,從資料的最小值延伸到資料的 Q1

資料的最小值由 Q1-1.5(Q3-Q1) 的值決定,而資料的最大值由公式 Q3+1.5(Q3-Q1) 決定。

import matplotlib.pyplot as plt

x = [
    1,
    4,
    5,
    6,
    8,
    9,
    10,
    10,
    11,
    11,
    12,
    12,
    13,
    14,
    15,
    15,
    15,
    17,
    18,
    18,
    19,
    22,
    23,
    25,
    30,
    33,
    35,
]

plt.boxplot(x)
plt.title("Boxplot Using Matplotlib")
plt.show()

輸出:

使用 Matplotlib 在 Python 中繪製帶有離群值的 Boxplot

它繪製了給定資料 x 的 boxplot。我們還可以注意到博平圖頂部的兩個離群值,在圖中用圓圈表示。

如果一個資料點的值小於 Q1-1.5(Q3-Q1) 或大於 Q3+ 1.5(Q3-Q1),則該資料點被繪製成離群值。

如果將一個二維陣列作為引數傳給 matplotlib.pyplot.boxplot() 函式,boxplot() 函式會對二維陣列中的每個陣列或列表生成箱線圖。

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(100)

data_a = np.random.randint(2, 15, size=15)
data_b = np.random.randint(5, 18, size=20)
data_c = np.random.randint(2, 20, size=30)
data_d = np.random.randint(1, 30, size=40)

data_2d = [data_a, data_b, data_c, data_d]

plt.boxplot(data_2d)
plt.title("Boxplot Using Matplotlib")
plt.show()

輸出:

在 Python 中使用 Matplotlib 製作多個箱線圖

它為列表 data_2d 中的每個 NumPy 陣列建立箱線圖。因此我們在一個共享公共軸的單一圖形中獲得了 4 個箱線圖。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn