You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用matplotlib绘制box-plot(箱线图)实现数据可视化

箱线图基本原理

箱线图是用于展示数据分布特征的统计图表,核心组成元素如下:

  • 中位数:箱体中间的实线,对应数据集从小到大排序后位于50%分位的数值,反映数据的集中趋势
  • 上下四分位数:箱体的上下边缘,分别对应25%和75%分位的数值,箱体的高度为四分位距(IQR),覆盖了中间50%的样本数据
  • 须线:从箱体上下边缘向外延伸的线段,最大延伸长度为1.5倍IQR,延伸范围内最远的样本点为须线端点
  • 异常值:落在须线范围外的离散点,属于偏离整体分布的异常样本
matplotlib绘制箱线图实现

前置依赖:需要提前安装matplotlib库,未安装的话可以执行pip install matplotlib完成安装。
以下是基于你提供的5组数据集的完整可运行代码:

import matplotlib.pyplot as plt

# 给定的数据集
data_1 = [19.2, 18.3, 17.1, 15.2, 14.0, 13.8, 12.8, 17.3, 16.3, 16.0, 15.7, 15.3, 14.3, 14.0, 13.8, 12.5, 11.5, 14.2, 17.3, 15.8]
data_2 = [3.85, 3.75, 3.88, 3.66, 3.47, 3.75, 3.92, 3.97, 3.76, 3.98, 3.75, 3.77, 3.76, 3.76, 3.9, 3.8, 3.65, 3.6, 3.86, 3.93]
data_3 = [66.0, 79.0, 73.0, 86.0, 178.0, 108.0, 96.0, 59.0, 22.0, 58.0, 120.0, 144.0, 100.0, 104.0, 67.0, 89.0, 192.0, 301.0, 99.0, 66.0]
data_4 = [9.35, 11.15, 9.4, 6.4, 3.6, 5.8, 5.0, 10.25, 8.2, 10.15, 8.8, 5.6, 5.55, 8.7, 7.41, 5.35, 6.35, 4.25, 12.85, 4.9]
data_5 = [5.65, 6.92, 5.75, 4.0, 2.25, 3.2, 2.7, 6.1, 5.0, 6.0, 5.5, 3.35, 3.25, 5.1, 4.4, 3.15, 3.9, 2.4, 7.7, 2.75] 

# 打包所有数据用于绘图
all_data = [data_1, data_2, data_3, data_4, data_5]
# 自定义x轴标签
labels = ['data_1', 'data_2', 'data_3', 'data_4', 'data_5']

# 创建画布和轴对象
fig, ax = plt.subplots(figsize=(10, 6))
# 绘制箱线图,patch_artist=True表示支持填充箱体颜色,showmeans=True表示展示均值点
box = ax.boxplot(all_data, labels=labels, patch_artist=True, showmeans=True)

# 可选配置:给不同箱体设置不同填充色
colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd']
for patch, color in zip(box['boxes'], colors):
    patch.set_facecolor(color)

# 设置坐标轴和标题
ax.set_ylabel('数值范围')
ax.set_title('5组数据集的箱线图分布')

# 展示图像
plt.show()

常用可调参数

  • vert=False:绘制横向箱线图,默认为纵向
  • showfliers=False:隐藏异常值点,默认展示
  • meanline=True:将均值用线的形式展示,默认为点
  • whis=2:自定义须线延伸的IQR倍数,默认是1.5

注意事项

由于data_3的数值范围远大于其他4组数据,直接合并绘图时其余4组的分布特征会被压缩,若需要清晰观察小数值组的分布,可以单独绘制data_3的箱线图,或者对所有数据做对数标准化后再绘图。

内容的提问来源于stack exchange,提问作者user16813646

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:00:02