本示例展示如何使用 Python 和 Matplotlib 绘制多个颜色不同的箱线图,并对图形的各个部分进行自定义样式设置。

步骤 1: 导入必要的库

import matplotlib.pyplot as plt

import numpy as np

首先,我们需要导入所需的库:Matplotlib 和 NumPy。

步骤 2: 生成示例数据

# 设置随机种子以确保每次运行生成相同的随机数据

np.random.seed(0)

# 生成六组随机数据作为示例

data = [np.random.randn(100) for _ in range(6)]

在本示例中,我们使用 NumPy 生成了六组随机数据作为箱线图的示例数据。

步骤 3: 设置颜色列表

# 设置颜色列表

colors = ['red', 'green', 'blue', 'orange', 'purple', 'brown']

我们定义了一个颜色列表,其中包含了我们希望在每个箱线图中使用的颜色。

步骤 4: 绘制箱线图

# 绘制箱线图

fig, ax = plt.subplots()

boxplots = ax.boxplot(data)

使用 Matplotlib 的 subplots 函数创建一个图形和一个坐标轴。然后,我们使用 boxplot 函数绘制箱线图,并将返回的箱线图对象保存在 boxplots 变量中。

步骤 5: 自定义箱线图样式

# 设置每个箱线图的线条颜色和样式

for box, color in zip(boxplots['boxes'], colors):

box.set(color=color, linewidth=2)

# 设置中位数线的颜色和样式

for median in boxplots['medians']:

median.set(color='black', linewidth=2)

# 设置横线的颜色和样式

for whisker, cap in zip(boxplots['whiskers'], boxplots['caps']):

whisker.set(color='black', linestyle='--', linewidth=2)

cap.set(color='black', linewidth=2)

# 设置异常值的样式和颜色

for flier in boxplots['fliers']:

flier.set(marker='^', markeredgecolor='red', markerfacecolor='none', markersize=8, linewidth=2)

在这些代码中,我们使用循环来为每个箱线图的不同部分设置样式。我们通过遍历 boxplots 字典中的不同键(如 'boxes'、'medians'、'whiskers' 和 'caps')来访问相应的线条对象,并使用 set 方法设置它们的颜色、线宽和样式。

步骤 6: 添加标题和标签

# 添加标题和标签

plt.title("Box Plot")

plt.xlabel("Data")

plt.ylabel("Values")

使用 title、xlabel 和 ylabel 函数,我们可以为箱线图添加标题和轴标签。

步骤 7: 添加图例

# 设置图例

legend_patches = [plt.Line2D([0], [0], marker='s', color='white', markerfacecolor=color, markersize=8, linewidth=2) for color in colors]

labels = ['Box {}'.format(i+1) for i in range(len(colors))]

plt.legend(legend_patches, labels)

我们使用 Line2D 函数创建了一个图例的标记,并将其与对应的标签一起传递给 legend 函数,以创建一个图例对象。

步骤 8: 在图像右下角添加标签

# 在图像右下角添加标签

text = '\n'.join(labels)

plt.text(0.9, 0.1, text, transform=ax.transAxes, ha='right', va='bottom')

最后,我们使用 text 函数在图像的右下角添加标签。我们指定了标签的位置坐标 (0.9, 0.1),以及相对于坐标轴的水平对齐方式 (ha='right') 和垂直对齐方式 (va='bottom')。

步骤 9: 显示图形

# 显示图形

plt.show()

最后,我们使用 show 函数显示绘制的箱线图。

以上就是使用 Python 和 Matplotlib 绘制多个颜色不同的箱线图的完整代码和说明。

希望这篇博客文章能对您有所帮助!如果您有任何疑问,请随时提问。

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: