返回

探索matplotlib的箱形图世界:解锁隐藏的宝藏

后端

数据可视化中的箱形图:直观揭示数据分布

在数据分析和数据科学领域,有效展示数据至关重要,箱形图因其直观性和简洁性而脱颖而出。本文将深入探讨 matplotlib 库中箱形图的绘制技巧,涵盖从基本箱形图到高级变体的各种类型。

1. 箱形图简介

1.1 箱形图概述

箱形图是一种图表,展示数据的分布情况,通过绘制四分位数和中位数,清晰展现数据的集中度、离散度和潜在异常值。

1.2 解读箱形图

  • 箱长: 表示四分位距 (IQR),即上四分位数与下四分位数之差,反映了数据的离散程度。
  • 中位数: 将数据从小到大排列后的中间值,不受异常值影响,是数据的典型值。
  • 四分位数: 将数据从小到大排列后,将数据分成四等分后的三个分位点。下四分位数表示数据的 25% 分位点,上四分位数表示数据的 75% 分位点。
  • 异常值: 明显偏离数据集其他值的数据点,可能是由于数据输入错误或测量误差。

2. 基本箱形图

2.1 绘制

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
data = np.random.normal(0, 1, 100)

# 绘制箱形图
plt.boxplot(data)
plt.show()

3. 水平箱形图

3.1 绘制

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
data = np.random.normal(0, 1, 100)

# 绘制水平箱形图
plt.boxplot(data, vert=False)
plt.show()

4. 带缺口的箱形图

4.1 绘制

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
data = np.random.normal(0, 1, 100)

# 绘制带有缺口的箱形图
plt.boxplot(data, notch=True)
plt.show()

5. 群组箱形图

5.1 绘制

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
data = np.random.normal(0, 1, 100)
data2 = np.random.normal(1, 1, 100)

# 绘制群组箱形图
plt.boxplot([data, data2], labels=['组别1', '组别2'])
plt.show()

6. 堆叠箱形图

6.1 绘制

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
data = np.random.normal(0, 1, 100)
data2 = np.random.normal(1, 1, 100)

# 绘制堆叠箱形图
plt.boxplot([data, data2], labels=['组别1', '组别2'], vert=False)
plt.show()

7. 核密度估计箱形图

7.1 绘制

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
data = np.random.normal(0, 1, 100)

# 绘制核密度估计箱形图
plt.boxplot(data, showfliers=False)
plt.plot(data, np.random.randn(100), 'r.', markersize=2)
plt.show()

结论

箱形图是展示数据分布的强大工具,matplotlib 库提供了广泛的选项来定制和扩展其功能。通过掌握不同的箱形图类型,您可以清晰有效地传达数据洞察,为您的分析提供更深入的见解。

常见问题解答

  1. 如何处理异常值?
  • 考虑使用带有缺口的箱形图或核密度估计箱形图来可视化异常值。
  • 过滤掉极端异常值,或通过变换数据(例如对数变换)来减少其影响。
  1. 如何比较不同组别的数据?
  • 使用群组箱形图或堆叠箱形图,将不同组别的分布并排展示。
  • 考虑使用统计检验(例如 ANOVA 或 Kruskal-Wallis 检验)来评估组别之间的差异。
  1. 如何选择合适的箱形图类型?
  • 基本箱形图: 用于快速概述数据分布。
  • 水平箱形图: 适合展示具有大量类别的分类数据。
  • 带有缺口的箱形图: 用于展示数据的置信区间。
  • 群组箱形图: 用于比较不同组别的数据分布。
  • 堆叠箱形图: 用于同时展示多个组别的分布和重叠情况。
  • 核密度估计箱形图: 用于提供更详细的数据分布信息。
  1. 为什么我的箱形图中没有显示异常值?
  • 确保数据集中包含异常值。
  • 考虑将 showfliers 参数设置为 True
  • 尝试使用不同的箱形图类型,例如带有缺口的箱形图或核密度估计箱形图。
  1. 如何自定义箱形图的外观?
  • 使用 boxpropswhiskerpropscapprops 参数设置箱形、晶须和盖子的颜色、线宽和样式。
  • 使用 flierprops 参数设置异常值标记的颜色、形状和大小。
  • 使用 patch_artist 参数在箱形内部填充颜色或图案。