刻度之间的标签居中

PythonPythonBeginner
立即练习

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

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

简介

在本实验中,我们将学习如何使用 Python 在 Matplotlib 绘图中使刻度之间的标签居中。默认情况下,刻度标签相对于其关联的刻度对齐,但没有直接的方法使标签在刻度之间居中。不过,我们可以在主刻度之间的次刻度上放置一个标签,并隐藏主刻度标签和次刻度,以模拟这种行为。我们将使用谷歌股价的财务数据来演示此技术。

虚拟机提示

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

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

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

加载财务数据

首先,我们需要使用 Matplotlib 的 cbook.get_sample_data() 函数加载一些谷歌股价的财务数据。我们将使用最近 250 天的数据。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cbook as cbook

## Load some financial data; Google's stock price
r = cbook.get_sample_data('goog.npz')['price_data'].view(np.recarray)
r = r[-250:]  ## get the last 250 days

创建图表

接下来,我们将使用 Matplotlib 的 subplots() 函数创建图表,并绘制谷歌股票随时间变化的调整收盘价。

fig, ax = plt.subplots()
ax.plot(r.date, r.adj_close)

设置主刻度和次刻度定位器及格式化器

为了使刻度之间的标签居中,我们需要为 x 轴设置主刻度和次刻度定位器及格式化器。我们将使用 dates.MonthLocator() 函数将主刻度和次刻度定位到月份,并使用 dates.DateFormatter() 函数将次刻度标签格式化为月份缩写。

import matplotlib.dates as dates
import matplotlib.ticker as ticker

ax.xaxis.set_major_locator(dates.MonthLocator())
## 16 是一个近似值,因为每个月的天数不同。
ax.xaxis.set_minor_locator(dates.MonthLocator(bymonthday=16))

ax.xaxis.set_major_formatter(ticker.NullFormatter())
ax.xaxis.set_minor_formatter(dates.DateFormatter('%b'))

移除主刻度标签和次刻度

为了模拟使标签在刻度之间居中的效果,我们需要移除主刻度标签和次刻度,只显示次刻度标签。我们可以使用 tick_params() 函数并将 tick1Ontick2On 参数设置为 False 来实现这一点。

## Remove the tick lines
ax.tick_params(axis='x', which='minor', tick1On=False, tick2On=False)

对齐次刻度标签

最后,我们需要将次刻度标签对齐到主刻度之间的中心位置。我们可以使用 get_xticklabels() 函数,并将 minor 参数设置为 True 来获取次刻度标签。然后,我们可以遍历这些标签,并将水平对齐方式设置为 'center'

## Align the minor tick label
for label in ax.get_xticklabels(minor=True):
    label.set_horizontalalignment('center')
imid = len(r) // 2
ax.set_xlabel(str(r.date[imid].item().year))

显示图表

现在我们可以使用 show() 函数来显示图表。

plt.show()

总结

在本实验中,我们学习了如何使用 Python 在 Matplotlib 图表中使刻度之间的标签居中。我们使用谷歌股票价格的财务数据来演示此技术,并遵循了以下步骤:

  1. 加载财务数据
  2. 创建图表
  3. 设置主刻度和次刻度定位器及格式化器
  4. 移除主刻度标签和次刻度
  5. 将次刻度标签对齐到主刻度之间的中心位置
  6. 显示图表。