箱线图与小提琴图对比

Beginner

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

简介

本教程将指导你使用 Python Matplotlib 库创建箱线图和小提琴图的过程。箱线图和小提琴图用于可视化数据分布。

虚拟机使用提示

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

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

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

导入库

在创建图表之前,我们需要导入必要的库。我们将使用 numpy 生成随机数据,并使用 matplotlib.pyplot 创建图表。

import matplotlib.pyplot as plt
import numpy as np

生成数据

我们将使用 numpy 生成一些随机测试数据。

np.random.seed(19680801)
all_data = [np.random.normal(0, std, 100) for std in range(6, 10)]

创建小提琴图

我们将使用 violinplot() 方法创建一个小提琴图。此方法接受多个参数,如数据、是否显示均值、是否显示中位数等。

fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(9, 4))
axs[0].violinplot(all_data, showmeans=False, showmedians=True)
axs[0].set_title('Violin plot')

创建箱线图

我们将使用 boxplot() 方法创建一个箱线图。此方法接受多个参数,如数据、标签、是否显示均值、是否有凹口等。

axs[1].boxplot(all_data)
axs[1].set_title('Box plot')

添加网格线和标签

我们将为图表添加水平网格线,并设置 x 轴标签和 y 轴标签。

for ax in axs:
    ax.yaxis.grid(True)
    ax.set_xticks([y + 1 for y in range(len(all_data))], labels=['x1', 'x2', 'x3', 'x4'])
    ax.set_xlabel('Four separate samples')
    ax.set_ylabel('Observed values')

显示图表

最后,我们将使用 show() 方法来显示图表。

plt.show()

总结

在本教程中,我们学习了如何使用 Python 的 Matplotlib 库创建箱线图和小提琴图。我们还学习了如何为图表添加水平网格线,以及设置 x 轴标签和 y 轴标签。箱线图和小提琴图在可视化数据分布方面很有用。