创建自定义的 Matplotlib 刻度格式

Beginner

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

简介

在本实验中,你将学习如何使用ticker模块在 Python Matplotlib 中创建自定义刻度。自定义刻度将以百万美元为单位格式化 y 轴刻度。

虚拟机使用提示

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

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

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

导入所需库

首先,我们需要导入创建自定义刻度所需的库。我们需要 Matplotlib 中的pyplotticker模块。

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

定义自定义刻度函数

接下来,我们需要定义自定义刻度函数。自定义刻度函数接受两个参数——值和刻度位置——并返回格式化后的刻度标签。在这种情况下,我们将把刻度标签格式化为以百万美元为单位。

def millions(x, pos):
    """The two arguments are the value and tick position."""
    return f'${x*1e-6:1.1f}M'

创建图表

现在,我们可以使用自定义刻度来创建图表了。我们将使用示例数据创建一个柱状图,并将 y 轴刻度设置为使用我们的自定义刻度函数。

## Create a bar chart with sample data
fig, ax = plt.subplots()
money = [1.5e5, 2.5e6, 5.5e6, 2.0e7]
ax.bar(['Bill', 'Fred', 'Mary', 'Sue'], money)

## Set the y-axis ticker to use the custom ticker function
ax.yaxis.set_major_formatter(ticker.FuncFormatter(millions))

## Display the plot
plt.show()

解读输出结果

代码的输出应该是一个柱状图,其中 y 轴标签以百万美元为单位进行格式化。刻度标签将分别格式化为“$0.2M”、“$2.5M”、“$5.5M”和“$20.0M”。

总结

在本实验中,你学习了如何使用ticker模块在 Python 的 Matplotlib 中创建自定义刻度。你还学习了如何使用自定义刻度函数将刻度标签格式化为以百万美元为单位。在处理大型金融数据集时,这种技术可能会很有用。