Matplotlib Pyplot 接口教程

MatplotlibMatplotlibBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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

虚拟机使用提示

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

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

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

生成简单图表

首先,让我们使用 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 接口来创建和自定义图表。我们涵盖了生成简单图表、设置图表样式、绘制多条线、使用分类变量以及自定义线条属性。通过利用这些功能,你可以创建各种类型的图表来有效地可视化你的数据。