为箱线图创建自定义填充颜色

PythonPythonBeginner
立即练习

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

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

简介

本教程将指导你使用 Python Matplotlib 为箱线图创建自定义填充颜色的过程。箱线图是一种用于展示一组数据分布的图表类型。它们展示了数据集的中位数、四分位数和异常值。在本教程中,我们将使用 Matplotlib 中的 boxplot() 函数创建两种类型的箱线图(矩形和带缺口的),并用自定义颜色填充它们。

虚拟机使用提示

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

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

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

导入所需库

我们将首先导入所需的库。在这个例子中,我们将使用 numpymatplotlib.pyplot 库。

import matplotlib.pyplot as plt
import numpy as np

创建随机测试数据

接下来,我们将使用 numpy 库创建随机测试数据。我们将生成 3 组数据,每组数据具有不同的标准差。

np.random.seed(19680801)
all_data = [np.random.normal(0, std, size=100) for std in range(1, 4)]
labels = ['x1', 'x2', 'x3']

创建矩形箱线图

现在我们将使用 Matplotlib 中的 boxplot() 函数创建一个矩形箱线图。我们将把 patch_artist 参数设置为 True 以便用颜色填充箱体。

fig, ax1 = plt.subplots(figsize=(9, 4))
bplot1 = ax1.boxplot(all_data,
                     vert=True,  ## 垂直箱体对齐
                     patch_artist=True,  ## 用颜色填充
                     labels=labels)  ## x 轴刻度标签
ax1.set_title('Rectangular Box Plot')

创建带缺口的箱线图

现在我们将使用 boxplot() 函数创建一个带缺口的箱线图。我们将把 notch 参数设置为 True 来创建带缺口的箱线图。

fig, ax2 = plt.subplots(figsize=(9, 4))
bplot2 = ax2.boxplot(all_data,
                     notch=True,  ## 缺口形状
                     vert=True,  ## 垂直箱体对齐
                     patch_artist=True,  ## 用颜色填充
                     labels=labels)  ## x 轴刻度标签
ax2.set_title('Notched Box Plot')

用自定义颜色填充箱线图

接下来,我们将用自定义颜色填充箱线图。我们将创建一个颜色列表,并使用循环为每个箱体填充不同的颜色。

colors = ['pink', 'lightblue', 'lightgreen']
for bplot in (bplot1, bplot2):
    for patch, color in zip(bplot['boxes'], colors):
        patch.set_facecolor(color)

添加水平网格线

最后,我们将使用 yaxis.grid() 函数为箱线图添加水平网格线。

for ax in [ax1, ax2]:
    ax.yaxis.grid(True)
    ax.set_xlabel('Three Separate Samples')
    ax.set_ylabel('Observed Values')

plt.show()

总结

在本教程中,我们学习了如何使用 Python 的 Matplotlib 为箱线图创建自定义填充颜色。我们首先导入所需的库,创建随机测试数据,然后创建矩形和带缺口的箱线图。接着,我们用自定义颜色填充箱线图并添加了水平网格线。箱线图是用于展示数据分布的实用可视化工具,而自定义填充颜色可使其在视觉上更具吸引力。