Matplotlib:季度小刻度标签

Posted

技术标签:

【中文标题】Matplotlib:季度小刻度标签【英文标题】:Matplotlib: quarterly minor tick labels 【发布时间】:2019-07-10 02:03:18 【问题描述】:

我尝试使用 Matplotlib 绘制季度数据。我希望主要的 xtick 标签显示年份,次要的 xtick 标签显示季度。

然而,我能找到的只是每月数据。也就是说,下面的代码(使用 matplotlib 的 mdates 函数)将每月生成次要 xticks,但我没有看到季度选项...

有什么帮助吗?

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

A = pd.DataFrame(np.random.rand(6*4))
A.index = pd.date_range(start = "2017", periods = len(A), freq = "QS")

fig, ax = plt.subplots(figsize = (10,6))

ax.plot(A)

years = mdates.YearLocator()   # every year
months = mdates.MonthLocator()  # every month
yearsFmt = mdates.DateFormatter('%Y')

ax.xaxis.set_major_locator(years)
ax.xaxis.set_major_formatter(yearsFmt)
ax.xaxis.set_minor_locator(months)

【问题讨论】:

非常确定您可以使用规则定位器(matplotlib.org/api/dates_api.html,dateutil.readthedocs.io/en/stable/rrule.html) 【参考方案1】:

MonthLocator 接受多个参数。您可以使用bymonth(第一个)并指定您想要的月份。一个季度包含 3 个月,所以 1,4,7,10 应该是您所追求的。

months = mdates.MonthLocator((1,4,7,10))

【讨论】:

以上是关于Matplotlib:季度小刻度标签的主要内容,如果未能解决你的问题,请参考以下文章

请教如何自定义python的matplotlib中的X轴刻度的问题

整数刻度标签 matplotlib,没有原点刻度标签

Matplotlib 对数刻度刻度标签数字格式

matplotlib 刻度标签锚 - 右对齐刻度标签(在右侧轴上)并将刻度标签的左(西)侧“剪辑”到轴

python matplotlib刻度(含日期刻度处理),标签,网格

如何在 matplotlib 中移动刻度标签