Matplotlib 基础折线图

PythonBeginner
立即练习

简介

Matplotlib 是 Python 中用于创建静态、动态和交互式可视化的综合库。它是最受欢迎的数据可视化库之一,对于使用 Python 的任何数据科学家或分析师来说都至关重要。

折线图是最基础且最常用的图表类型之一。它通过由直线段连接的、被称为「标记(markers)」的数据点序列来展示信息。它通常用于可视化时间间隔内的数据趋势——即时间序列——因此折线通常按时间顺序绘制。

在本实验中,你将从头学习如何创建一个简单的折线图。我们将涵盖整个流程:准备数据、绘制图表、为坐标轴添加描述性标签,最后将图表保存为图像文件,以便你直接在 LabEx 环境中查看。

准备 x 和 y 数据列表

这一步中,我们将为图表准备数据。在进行任何可视化之前,你需要有数据。对于简单的二维折线图,你需要两组数据:一组用于 x 轴(水平轴),另一组用于 y 轴(垂直轴)。

我们将使用 Python 列表来存储数据。让我们创建一个简单的几年来人口增长的数据集。

首先,通过左侧的文件资源管理器打开位于 ~/project 目录下的 main.py 文件。该文件已经包含了必要的导入语句。

现在,将以下代码添加到 main.py 中,以创建 xy 两个列表。

import matplotlib.pyplot as plt

## 用于绘制的数据
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

在这里,x 代表年份,y 代表对应年份的百万人口数。这两个列表将作为我们折线图的坐标。

使用 plt.plot(x, y) 绘制折线

这一步中,我们将使用准备好的数据来创建实际的图表。Matplotlib 的 pyplot 模块(我们将其导入为 plt)提供了一个非常适合此任务的函数 plot()

plt.plot() 函数接收两个主要参数:x 轴的数据和 y 轴的数据。然后,它将绘制一条连接由这些坐标定义点的折线。

将以下代码行添加到你的 main.py 脚本中,紧跟在你在上一步中创建的数据列表之后。

import matplotlib.pyplot as plt

## 用于绘制的数据
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## 创建图表
plt.plot(x, y)

这行简单的代码告诉 Matplotlib 使用 xy 列表作为坐标来创建折线图。但是,如果你现在运行脚本,还看不到任何内容。我们仍然需要添加标签并显式地将图表保存到文件中。

使用 plt.xlabel() 添加 x 轴标签

这一步中,我们将为 x 轴添加标签。没有标签的图表通常毫无意义,因为观察者不知道坐标轴代表什么。这是创建清晰且信息丰富的可视化的关键部分。

Matplotlib 提供了 plt.xlabel() 函数来为 x 轴添加标签。你只需将所需的标签作为字符串传递给此函数。

让我们为图表添加「Year(年份)」标签。在 plt.plot() 调用之后,将以下代码行添加到你的 main.py 脚本中。

import matplotlib.pyplot as plt

## 用于绘制的数据
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## 创建图表
plt.plot(x, y)

## 添加 x 轴标签
plt.xlabel("Year")

现在,我们图表的水平轴将清晰地标有「Year」。

使用 plt.ylabel() 添加 y 轴标签

这一步中,我们将为 y 轴添加标签,从而完成图表的基础标注。就像 x 轴一样,y 轴也需要一个描述性的标签,以便观察者理解数据。

为此使用的函数是 plt.ylabel(),它的工作方式与 plt.xlabel() 完全相同。你需要将标签文本作为字符串传递。

让我们为图表添加「Population(人口)」标签。在 plt.xlabel() 调用之后,将以下代码行添加到你的 main.py 脚本中。

import matplotlib.pyplot as plt

## 用于绘制的数据
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## 创建图表
plt.plot(x, y)

## 添加 x 轴标签
plt.xlabel("Year")

## 添加 y 轴标签
plt.ylabel("Population (in millions)")

有了两个坐标轴的标签,我们的图表现在更容易理解了。

使用 plt.show() 显示图表

这一步中,我们将生成并查看我们的图表。在典型的桌面环境中,你可能会使用 plt.show() 在新窗口中显示图表。但是,在像 LabEx 这样的基于 Web 的环境中,我们无法打开图形用户界面(GUI)窗口。

相反,我们将使用 plt.savefig() 函数将图表保存到图像文件中。此函数将当前图形保存到项目目录中的文件中。

将以下代码行添加到你的 main.py 脚本末尾。这会将图表保存为名为 line_plot.png 的 PNG 图像。

import matplotlib.pyplot as plt

## 用于绘制的数据
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## 创建图表
plt.plot(x, y)

## 添加 x 轴标签
plt.xlabel("Year")

## 添加 y 轴标签
plt.ylabel("Population (in millions)")

## 将图表保存到文件
plt.savefig("line_plot.png")

现在,在 WebIDE 中打开一个终端(你可以使用终端面板中的 + 图标或菜单 Terminal > New Terminal)。使用以下命令运行你的脚本:

python3 main.py

命令完成后,你将在左侧的文件资源管理器中看到一个名为 line_plot.png 的新文件。双击 line_plot.png 打开它,即可查看你完成的折线图!

折线图

总结

恭喜!你已经成功使用 Matplotlib 创建并保存了你的第一个折线图。

在本实验中,你学习了创建基础图表的基本工作流程:

  1. 准备数据:你创建了 Python 列表来保存 x 轴和 y 轴的数据。
  2. 绘制数据:你使用 plt.plot() 根据数据生成了折线图。
  3. 添加标签:通过使用 plt.xlabel()plt.ylabel() 添加标签,使图表更具信息量。
  4. 保存图表:你学会了使用 plt.savefig() 将可视化结果保存到文件中,这在非 GUI 环境中至关重要。

这只是你使用 Matplotlib 能力的起点。现在,你可以在这些技能的基础上构建更复杂、更定制化的可视化图表。继续探索吧!