当前位置:首页>python>Python Matplotlib绘制箱线图

Python Matplotlib绘制箱线图

  • 2026-08-26 01:19:12
Python Matplotlib绘制箱线图
源代码:
import matplotlib.pyplot as pltimport numpy as npplt.style.use('_mpl-gallery')# make data:np.random.seed(10)D = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3))# plotfig, ax = plt.subplots()VP = ax.boxplot(D, positions=[2, 4, 6], widths=1.5, patch_artist=True,                showmeans=False, showfliers=False,                medianprops={"color": "white", "linewidth": 0.5},                boxprops={"facecolor": "C0", "edgecolor": "white",                          "linewidth": 0.5},                whiskerprops={"color": "C0", "linewidth": 1.5},                capprops={"color": "C0", "linewidth": 1.5})ax.set(xlim=(0, 8), xticks=np.arange(1, 8),       ylim=(0, 8), yticks=np.arange(1, 8))plt.show()
源代码详解:
# 1. 导入库与设置样式import matplotlib.pyplot as pltimport numpy as npplt.style.use('_mpl-gallery')# 2. 生成数据np.random.seed(10)  # 固定随机种子,确保结果可重复。D = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3))# np.random.normal(mean, std, size):生成正态分布随机数。# 生成一个100行3列的数组,每列分别来自均值3,5,4,标准差1.25,1.00,1.25的正态分布# D 是一个形状为 (100, 3) 的数组,每一列对应一个样本# 3. 创建图形与绘制箱线图fig, ax = plt.subplots()    # 创建一个图形 (fig) 和一个坐标轴对象 (ax)VP = ax.boxplot(D, positions=[2, 4, 6], widths=1.5, patch_artist=True, showmeans=False, showfliers=False, medianprops={"color": "white", "linewidth": 0.5}, boxprops={"facecolor": "C0", "edgecolor": "white", "linewidth": 0.5}, whiskerprops={"color": "C0", "linewidth": 1.5}, capprops={"color": "C0", "linewidth": 1.5})# D: 数据,形状(100,3),将绘制三个箱线,每一列绘制一个箱线# positions=[2,4,6]: 箱线图在x轴上的位置。# widths=1.5: 箱体的宽度。# patch_artist=True: 填充箱体内部颜色(默认为不填充)# showmeans=False: 不显示均值点。# showfliers=False: 不显示离群值。# medianprops: 中位线属性,白色,线宽0.5。# boxprops: 箱体属性,填充颜色C0(默认蓝色),边缘白色,线宽0.5。# whiskerprops: 须线(从箱体延伸出的竖线)的属性,颜色C0,线宽1.5。# capprops: 帽线,须线末端横线(帽)的属性,颜色为 C0,线宽 1.5。# VP 是返回的字典,包含绘制的各个元素的引用,但此处未使用。# 4. 设置坐标轴范围与刻度ax.set(xlim=(0, 8), xticks=np.arange(1, 8), ylim=(0, 8), yticks=np.arange(1, 8))# xlim=(0, 8):x 轴显示范围从 0 到 8# xticks=np.arange(1, 8):x 轴刻度设为 1 到 7# y轴同x轴# 5. 显示图形plt.show()
总结:
  • 使用boxplot(X)方法绘制箱线图
  • 箱线图(Box Plot)是一种基于五数概括(最小值、第一四分位数 Q1、中位数 Q2、第三四分位数 Q3、最大值)的统计图表,主要用于直观展示数据的分布特征和比较不同数据集
  • 箱线图是探索性数据分析(EDA)的基础工具,能快速揭示数据的关键特征,帮助研究者制定下一步分析策略。
主要用途:

1. 展示数据分布的中心与散布

  • 中心位置:中位数(箱体内的横线)反映数据的平均水平。

  • 离散程度:箱体高度(即四分位距 IQR = Q3 − Q1)表示中间 50% 数据的波动范围;须线(whiskers)延伸至非异常值的最远点,体现整体数据的变异性。

2. 比较多个数据集的分布

  • 并列绘制多个箱线图(如不同组别、不同时间点的数据),可直观对比它们的中位数、四分位距、偏态等,常用于实验对比、分组分析等场景。

3. 识别异常值(离群点)

  • 箱线图可自动标记超出须线范围(通常定义为 Q1 − 1.5×IQR 以下或 Q3 + 1.5×IQR 以上)的观测值,帮助快速发现可能的异常或错误数据。

4. 判断数据分布的偏态与对称性

  • 若中位数偏离箱体中心,或一侧须线明显长于另一侧,提示数据可能存在左偏或右偏。

5. 支持非参数检验的初步判断

  • 在假设检验(如 Mann‑Whitney U 检验)前,可通过箱线图观察组间分布形状是否相似,为选择检验方法提供参考。

6. 适用于大数据集的概要展示

  • 当数据量很大时,箱线图以简洁形式概括分布,避免直方图过于复杂或密度曲线难以比较的问题。

最新文章

随机文章