如果你觉得内容对你有帮助,请在 GitHub 上点个 star 吧!

Matplotlib 简介

3.1. Matplotlib 简介#

Matplotlib 是一个用于绘制二维图形的 Python 库,它是一个非常流行的数据可视化工具,特别适用于绘制各种类型的二维图像。通常和 pandas 与 NumPy 库一起使用。

安装库和导入包#

使用 pip 安装:

## 安装包
!pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: matplotlib in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (3.8.1)
Requirement already satisfied: contourpy>=1.0.1 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (1.1.1)
Requirement already satisfied: cycler>=0.10 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (4.43.1)
Requirement already satisfied: kiwisolver>=1.3.1 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (1.4.5)
Requirement already satisfied: numpy<2,>=1.21 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (1.26.1)
Requirement already satisfied: packaging>=20.0 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (23.2)
Requirement already satisfied: pillow>=8 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (10.1.0)
Requirement already satisfied: pyparsing>=2.3.1 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (3.1.1)
Requirement already satisfied: python-dateutil>=2.7 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from matplotlib) (2.8.2)
Requirement already satisfied: six>=1.5 in /Users/luweizheng/anaconda3/envs/pyds/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)

如下所示,导入 Matplotlib(并导入其他相关库):

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import pandas as pd

快速入门案例#

我们先从一个简单的例子开始,使用 Matplotlib 画出 (1,1),(2,4),(3,2),(4,3) 四个点构成的线图。透过这个例子,我们可以了解到 Matplotlib 的使用方式。

第一步: 用 plt.subplots() 创建一个图形(Figure)和一个坐标轴(Axes),这个函数会返回一个包括两个元素的元组对象,我们一般分别命名为 figax

  • fig: 通常用于表示 Figure。我们可以将 Figure 理解为一张空白画布。Figure 是 Matplotlib 的最高级容器,可以在其中绘制一个或多个 Axes。

  • ax: 用于表示 Axes。我们可以将 Axes 理解为子图,Axes 实际上是绘图区域,可以在 Axes 上绘制数据点、线条、图形等。一个 Figure 可以包含一个或多个 Axes。

第二步: 在坐标轴 ax 上使用 plot() 方法画图。传入两个列表,分别作为 x 坐标 和 y 坐标。

# 创建一个包含单个坐标轴的图形
fig, ax = plt.subplots()

# 在坐标轴上绘制一些数据
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
[<matplotlib.lines.Line2D at 0x125e08c50>]
../_images/e6bee8d9621c3b7a478c3ec6bc08bee3f567d2c03f382b7478eda8a2c93029d6.png

这个例子画了 4 个数据点,数据点之间用线连接起来,plot() 传入了两个数组,第一个数组为数据点的 x 坐标,第二个数组为数据点的 y 坐标。

基本概念#

图 3.1 所示,Matplotlib 主要有以下概念:FigureAxesAxis

../_images/anatomy.webp

图 3.1 Matplotlib 的重要组成部分#

  • Figure:所有 Matplotlib 都是在 Figure 上画的。

  • Axes 可以理解为 Figure 里的子图。

  • Axis 是每个图的横纵坐标轴。

后面将分别介绍不同的组成部分。