📜  使用 Matplotlib 在Python中绘制箱线图(1)

📅  最后修改于: 2023-12-03 15:06:48.612000             🧑  作者: Mango

使用 Matplotlib 在Python中绘制箱线图

箱线图是一种常用的数据可视化方法,用于表示数据的分散程度、离散程度以及异常值情况。在Python中,我们可以使用Matplotlib库来绘制箱线图。

准备数据

在使用Matplotlib绘制箱线图之前,我们需要准备待绘制的数据。以下是一个示例数据:

import numpy as np

data = np.random.normal(size=(100,5))

这段代码会生成一个规模为100x5的正态分布数据。

绘制箱线图

在准备好数据后,我们可以使用Matplotlib的boxplot()函数绘制箱线图。以下是一个示例代码:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ax.boxplot(data)

plt.show()

这段代码会生成一个简单的箱线图。

自定义箱线图

我们可以根据需要对箱线图进行自定义修改。以下是一些常用的配置选项:

  • labels: x轴刻度的名称,默认使用数字。
  • whis: 异常值的范围,默认为1.5倍的四分位距。
  • notch: 是否绘制缺口,默认为False。
  • patch_artist: 是否根据实际数据填充箱体,默认为False。

以下是一个自定义配置的示例代码:

fig, ax = plt.subplots()

bp = ax.boxplot(data, labels=['A', 'B', 'C', 'D', 'E'], whis=3, notch=True, patch_artist=True)

for box in bp['boxes']:
    box.set(facecolor='white', edgecolor='black', hatch='//')

plt.show()

这段代码会绘制一个带有自定义配置的箱线图。

数据处理与可视化

除了简单的绘图外,我们还可以使用箱线图来处理和可视化数据。以下是一个示例代码:

fig, ax = plt.subplots()

med = np.median(data, axis=0)
q1 = np.percentile(data, 25, axis=0)
q3 = np.percentile(data, 75, axis=0)
iqr = q3 - q1
upper_whisker = q3 + 1.5 * iqr
lower_whisker = q1 - 1.5 * iqr

bp = ax.boxplot(data, labels=['A', 'B', 'C', 'D', 'E'], whis=[5, 95])

ax.plot(med, 'o', color='red')

for i in range(med.size):
    ax.plot([i+1, i+1], [upper_whisker[i], med[i]], color='black')
    ax.plot([i+1, i+1], [lower_whisker[i], med[i]], color='black')

plt.show()

这段代码会将示例数据中每个维度的中位数、四分位数和异常值用不同的形式呈现出来。

结论

Matplotlib提供了丰富的接口和配置选项,使我们能够灵活地处理和可视化数据。通过本文介绍的方法,你可以快速上手绘制箱线图,并且了解如何根据实际需求进行自定义修改。