在 Python 中创建自定义箱线图

PythonPythonBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

箱线图是一种用于基于五数概括(“最小值”、第一四分位数(Q1)、中位数、第三四分位数(Q3)和“最大值”)来展示数据分布的图表类型。它们在数据分析中常用于识别和可视化异常值,以及比较不同数据组的分布情况。在本实验中,你将学习如何使用 Matplotlib 库在 Python 中创建和自定义箱线图。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。

导入必要的库

在开始创建箱线图之前,我们需要导入必要的库,包括 NumPy 和 Matplotlib:

import matplotlib.pyplot as plt
import numpy as np

生成数据

接下来,我们将生成一些示例数据用于我们的箱线图。在本教程中,我们将使用以下数据:

spread = np.random.rand(50) * 100
center = np.ones(25) * 50
flier_high = np.random.rand(10) * 100 + 100
flier_low = np.random.rand(10) * -100
data = np.concatenate((spread, center, flier_high, flier_low))

创建一个基本的箱线图

我们可以使用 Matplotlib 的boxplot()函数创建一个基本的箱线图。boxplot()函数将数据作为第一个参数,并接受其他可选参数来自定义图表。以下是创建基本箱线图的代码:

plt.boxplot(data)
plt.show()

自定义箱线图

我们可以通过更改箱体、须线和异常值的外观来自定义箱线图。我们还可以在同一图表上创建多个箱线图,以比较不同的数据组。以下是一些自定义箱线图的示例:

## 创建一个带缺口的箱线图
plt.boxplot(data, notch=True)
plt.show()

## 将异常值点符号更改为绿色菱形
plt.boxplot(data, flierprops=dict(marker='D', markerfacecolor='g', markersize=8))
plt.show()

## 创建水平箱线图
plt.boxplot(data, vert=False)
plt.show()

## 在一个图表上创建多个箱线图
data1 = np.random.normal(0, 1, 50)
data2 = np.random.normal(1, 1, 50)
data3 = np.random.normal(2, 1, 50)

plt.boxplot([data1, data2, data3])
plt.show()

添加标签和标题

最后,我们可以为箱线图添加标签和标题,使其更具信息性。我们可以为 x 轴和 y 轴添加标签,以及为图表添加标题。我们还可以更改标签和标题的字体大小和样式。以下是添加标签和标题的示例:

plt.boxplot([data1, data2, data3])
plt.xlabel('Group')
plt.ylabel('Value')
plt.title('Comparison of Three Groups')
plt.xticks([1, 2, 3], ['Group 1', 'Group 2', 'Group 3'])
plt.show()

总结

在本实验中,你学习了如何使用 Matplotlib 库在 Python 中创建和自定义箱线图。你学习了如何生成示例数据、创建基本箱线图、自定义箱线图的外观以及为图表添加标签和标题。箱线图是用于可视化和比较数据分布的强大工具,了解如何创建和自定义它们是数据分析师和科学家的一项重要技能。