Matplotlib 水平条形图

Beginner

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

简介

在本实验中,我们将学习如何使用 Python 的 Matplotlib 库创建水平条形图。水平条形图是一种将数据显示为水平条的图表。它对于比较不同类别的数据很有用。

虚拟机使用提示

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

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

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

导入所需库

第一步是导入所需的库。在本实验中,我们将使用 numpymatplotlib 库。

import matplotlib.pyplot as plt
import numpy as np

设置随机种子

在创建条形图之前,我们需要设置随机种子,以确保每次运行代码时都能得到相同的结果。

np.random.seed(19680801)

创建图形和坐标轴对象

下一步是创建图形和坐标轴对象。图形对象是绘制图表的窗口或画布,而坐标轴对象则是实际的图表。

fig, ax = plt.subplots()

准备数据

在这一步中准备图表的数据。我们将创建一个包含人员姓名、他们的表现以及错误率的列表。

people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
y_pos = np.arange(len(people))
performance = 3 + 10 * np.random.rand(len(people))
error = np.random.rand(len(people))

创建条形图

最后,我们将使用坐标轴对象的 barh() 方法创建水平条形图。

ax.barh(y_pos, performance, xerr=error, align='center')

自定义图表

为了使图表包含更多信息,我们可以通过添加标签、标题以及反转 y 轴来对其进行自定义。

ax.set_yticks(y_pos, labels=people)
ax.invert_yaxis()  ## labels read top-to-bottom
ax.set_xlabel('Performance')
ax.set_title('How fast do you want to go today?')

显示图表

最后,我们将通过调用 pyplot 对象的 show() 方法来显示图表。

plt.show()

总结

在这个实验中,我们学习了如何使用 Python 的 Matplotlib 创建水平条形图。我们了解了如何准备数据、创建图形和坐标轴对象以及自定义图表。我们还学习了坐标轴对象的 barh() 方法,以及如何使用 pyplot 对象的 show() 方法来显示图表。