简介
本教程将指导你使用 Python Matplotlib 为箱线图创建自定义填充颜色的过程。箱线图是一种用于展示一组数据分布的图表类型。它们展示了数据集的中位数、四分位数和异常值。在本教程中,我们将使用 Matplotlib 中的 boxplot() 函数创建两种类型的箱线图(矩形和带缺口的),并用自定义颜色填充它们。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到 笔记本 标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入所需库
我们将首先导入所需的库。在这个例子中,我们将使用 numpy 和 matplotlib.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 为箱线图创建自定义填充颜色。我们首先导入所需的库,创建随机测试数据,然后创建矩形和带缺口的箱线图。接着,我们用自定义颜色填充箱线图并添加了水平网格线。箱线图是用于展示数据分布的实用可视化工具,而自定义填充颜色可使其在视觉上更具吸引力。