创建自定义的 Matplotlib 刻度格式

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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