Matplotlib 三层结构解析

文章目录

    • @[TOC](文章目录)
  • 一、Matplotlib 的三层结构
    • 1. **Figure(图像)**
    • 2. **Axes(轴)**
    • 3. **Axis(坐标轴)**
  • 二、示例代码

一、Matplotlib 的三层结构

Matplotlib 的三层结构包括以下三个主要组件:

1. Figure(图像)

  • Figure 是 Matplotlib 图形的顶层容器,它是一个空白的画布,用于包含所有其他图形元素,如子图和轴。
  • 一个 Figure 可以包含多个子图,它们可以在同一个画布上并排或堆叠显示。

2. Axes(轴)

  • AxesFigure 内的一个或多个绘图区域。每个 Axes 包含一个或多个绘图区域,如线条、点、文本等。
  • 一个 Figure 可以包含多个 Axes,每个 Axes 可以有不同的坐标系和属性。

3. Axis(坐标轴)

  • AxisAxes 内的一个或多个坐标轴,它们定义了数据的范围和刻度标签。
  • Axis 负责绘制刻度线、刻度标签和坐标轴的外观。

Matplotlib 的三层结构是嵌套关系,即 Figure 包含多个 Axes,每个 Axes 包含一个或多个 Axis


二、示例代码

import matplotlib.pyplot as plt

# 创建一个 Figure 对象
fig = plt.figure()

# 在 Figure 上创建两个 Axes 对象
ax1 = fig.add_subplot(2, 1, 1)  # 2行1列,第1个子图
ax2 = fig.add_subplot(2, 1, 2)  # 2行1列,第2个子图

# 在每个 Axes 上绘制数据
ax1.plot([1, 2, 3, 4], [1, 2, 3, 4])
ax2.scatter([1, 2, 3, 4], [4, 3, 2, 1])

# 设置中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 设置坐标轴标签
ax1.set_xlabel('X轴')
ax1.set_ylabel('Y轴')
ax2.set_xlabel('X轴')
ax2.set_ylabel('Y轴')

# 设置标题
ax1.set_title('折线图')
ax2.set_title('散点图')

# 显示图形
plt.show()

代码首先创建一个 Figure 对象,然后在其中添加两个 Axes 对象,分别用于绘制折线图和散点图。每个 Axes 对象包含一个 Axis 对象,用于设置坐标轴标签和标题。最后,通过 plt.show() 显示图形。