使用 Matplotlib 创建分组柱状图

Beginner

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

简介

在本实验中,你将学习如何使用 Matplotlib 创建一个带有单位的分组柱状图。该柱状图将按组和饮料选择显示杯子高度。本教程将引导你完成使用 Python 代码创建图表的步骤。

虚拟机提示

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

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

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

导入必要的库

第一步是导入必要的库。我们将使用 NumPy 和 Matplotlib 来创建柱状图。cminch单位在basic_units.py文件中定义,该文件用于转换单位。

import matplotlib.pyplot as plt
import numpy as np
from basic_units import cm, inch

定义数据

下一步是定义用于创建柱状图的数据。我们将创建两组数据 —— 一组用于茶,一组用于咖啡。每组将有五个值,每个组一个。杯子的高度将以厘米为单位表示。

N = 5
tea_means = [15*cm, 10*cm, 8*cm, 12*cm, 5*cm]
tea_std = [2*cm, 1*cm, 1*cm, 4*cm, 2*cm]
coffee_means = (14*cm, 19*cm, 7*cm, 5*cm, 10*cm)
coffee_std = (3*cm, 5*cm, 2*cm, 1*cm, 2*cm)

创建图形和轴对象

下一步是创建图形和轴对象。我们将使用subplots()函数来创建图形和轴对象。

fig, ax = plt.subplots()
ax.yaxis.set_units(inch)

定义柱状图参数

下一步是定义柱状图的参数。我们将定义组的 x 位置、柱子的宽度以及 x 轴刻度的标签。

ind = np.arange(N)    ## 组的 x 位置
width = 0.35         ## 柱子的宽度
ax.set_xticks(ind + width / 2, labels=['G1', 'G2', 'G3', 'G4', 'G5'])

创建柱状图

下一步是创建柱状图。我们将使用bar()函数来创建图表。我们将创建两组柱子,一组代表茶,一组代表咖啡。我们还将为图表添加误差线。

ax.bar(ind, tea_means, width, bottom=0*cm, yerr=tea_std, label='Tea')
ax.bar(ind + width, coffee_means, width, bottom=0*cm, yerr=coffee_std,
       label='Coffee')

为图表添加标签和标题

最后一步是为图表添加标签和标题。我们将为图表添加一个标题、一个 x 轴标签以及图表的图例。

ax.set_title('Cup height by group and beverage choice')
ax.set_xlabel('Group')
ax.legend()
ax.autoscale_view()

总结

在本实验中,你学习了如何使用 Matplotlib 创建带有单位的分组柱状图。你学习了如何导入必要的库、定义数据、创建图形和轴对象、定义柱状图参数、创建柱状图以及为图表添加标签和标题。有了这些知识,你就可以使用 Matplotlib 创建自己的柱状图了。