Matplotlib Pyplot 接口教程

Intermediate

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

简介

本教程提供了使用 Matplotlib 中 pyplot 接口的分步指南。pyplot 模块是一组函数的集合,它使 Matplotlib 的工作方式类似于 MATLAB,让你能够轻松创建和自定义图表。本教程假设你对 Matplotlib 及其概念有基本的了解。

虚拟机使用提示

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

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

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

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 中级 级别的实验,完成率为 78%。获得了学习者 97% 的好评率。

生成简单图表

首先,让我们使用 pyplot 中的 plot 函数生成一个简单的图表。在这个例子中,我们将绘制一个 y 值为 [1, 2, 3, 4] 的折线图:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
plt.show()

解释:

  • 我们从 matplotlib 中导入 pyplot 模块并将其别名为 plt
  • plot 函数用于生成折线图。通过提供一个 y 值列表,x 值会自动生成为 [0, 1, 2, 3],因为 Python 中的范围从 0 开始。
  • ylabel 函数设置 y 轴的标签。
  • 最后,show 函数显示图表。

设置图表样式

接下来,让我们自定义图表的样式。我们可以使用 plot 函数的可选第三个参数来指定格式字符串,它指示了图表的颜色和线条类型。例如,让我们用红色圆圈绘制相同的折线图:

plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()

解释:

  • 我们使用格式字符串 'ro' 来表示用红色圆圈绘制图表。
  • axis 函数用于设置坐标轴的视口,指定 x 轴和 y 轴的值范围。

绘制多条线

我们还可以在一次函数调用中使用数组绘制多条具有不同样式的线。让我们绘制三条线:一条红色虚线、蓝色方块和绿色三角形:

import numpy as np

t = np.arange(0., 5., 0.2)

plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()

解释:

  • 我们使用 numpy 模块创建一个包含均匀采样时间值的数组 t
  • plot 函数被调用,带有三对 xy 值,后面跟着格式字符串 'r--'(红色虚线)、'bs'(蓝色方块)和 'g^'(绿色三角形)。

使用分类变量绘图

Matplotlib 允许你使用分类变量创建图表。让我们使用分类变量创建一个条形图、散点图和折线图:

names = ['group_a', 'group_b', 'group_c']
values = [1, 10, 100]

plt.figure(figsize=(9, 3))

plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)

plt.suptitle('Categorical Plotting')
plt.show()

解释:

  • 我们创建了一个包含三个分类值的列表 names 和一个表示其对应值的列表 values
  • 调用 figure 函数创建一个指定大小的新图形。
  • 我们使用 subplot 函数创建一个子图网格。在这个例子中,我们创建了三个子图,每个子图都有不同类型的图:条形图、散点图和折线图。
  • suptitle 函数用于设置图形的总标题。

自定义线条属性

Matplotlib 允许你自定义各种线条属性,例如线宽、虚线样式和颜色。让我们展示一些设置线条属性的方法:

x = np.arange(0, 5, 0.1)
line, = plt.plot(x, np.sin(x), '-')

## 使用 Line2D 实例的设置方法
line.set_linewidth(2.0)  ## 将线条的线宽属性设置为 2.0

## 使用 pyplot.setp 函数
plt.setp(line, color='r', linewidth=2.0)  ## 使用 setp 函数设置颜色和线宽属性

plt.show()

解释:

  • 我们创建一个数组 x,并使用 np.sin 函数计算相应的 y 值。
  • 调用 plot 函数创建一个折线图。
  • 我们使用 Line2D 实例的 set 方法将线条的线宽属性设置为 2.0。
  • 或者,我们可以使用 setp 函数通过关键字参数设置线条的多个属性,如颜色和线宽。

总结

在本教程中,我们学习了如何使用 Matplotlib 中的 pyplot 接口来创建和自定义图表。我们涵盖了生成简单图表、设置图表样式、绘制多条线、使用分类变量以及自定义线条属性。通过利用这些功能,你可以创建各种类型的图表来有效地可视化你的数据。