Matplotlib 绘制箱线图

Suraj Joshi 2024年2月15日
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