使用 Matplotlib 格式化刻度标签

Beginner

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

简介

本实验教程将指导你使用 Python Matplotlib 库格式化刻度标签的过程。它将介绍默认的刻度格式化器以及通过 ~.axes.Axes.ticklabel_format 进行的各种配置。

虚拟机使用提示

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

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

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

导入所需库

为了使用 Python Matplotlib 库,我们需要将其导入到我们的 Python 环境中。此外,我们将使用 NumPy 库为示例图表生成数据。

import matplotlib.pyplot as plt
import numpy as np

为示例图表生成数据

我们将为三个图表生成数据,以展示使用 ~.axes.Axes.ticklabel_format 时可能的不同配置。

x = np.arange(0, 1,.01)

## 图表 1
plot1_x = x * 1e5 + 1e10
plot1_y = x * 1e-10 + 1e-5

## 图表 2
plot2_x = x * 1e5
plot2_y = x * 1e-4

## 图表 3
plot3_x = -x * 1e5 - 1e10
plot3_y = -x * 1e-5 - 1e-10

为示例图表创建子图

我们将创建一个 3x3 的子图网格来展示我们的示例图表。

fig, axs = plt.subplots(
    3, 3, figsize=(9, 9), layout="constrained", gridspec_kw={"hspace": 0.1})

在子图上绘制数据

我们将在步骤 3 创建的子图上绘制生成的数据。

for col in axs.T:
    col[0].plot(plot1_x, plot1_y)
    col[1].plot(plot2_x, plot2_y)
    col[2].plot(plot3_x, plot3_y)

配置刻度标签格式

我们将为子图配置刻度标签格式。第一个子图将使用默认设置,第二个子图将使用数学表达式的精美格式,第三个子图将不使用偏移表示法。

## 子图 1(默认设置)
axs[0, 0].set_title("default settings")

## 子图 2(useMathText=True)
for ax in axs[:, 1]:
    ax.ticklabel_format(useMathText=True)
axs[0, 1].set_title("useMathText=True")

## 子图 3(useOffset=False)
for ax in axs[:, 2]:
    ax.ticklabel_format(useOffset=False)
axs[0, 2].set_title("useOffset=False")

显示示例图表

我们将显示配置了刻度标签格式的示例图表。

plt.rcParams.update({"axes.titleweight": "bold", "axes.titley": 1.1})
plt.show()

总结

在本实验教程中,我们学习了如何使用 Python 的 Matplotlib 库来格式化刻度标签。我们为三个示例图表生成了数据,并为每个图表配置了刻度标签格式。我们展示了示例图表,以可视化不同的刻度标签格式配置。