python - Matplotlib:季度小刻度标签
问题描述
我有我试图使用 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)
解决方案
MonthLocator
需要几个参数。您可以使用bymonth
(第一个)并指定您想要勾选的月份。一个季度包括 3 个月,所以1,4,7,10
应该是你所追求的。
months = mdates.MonthLocator((1,4,7,10))
推荐阅读
- android - 如何在Android Kotlin中根据其宽度将圆角应用于视图
- python - Python GEKKO:如何避免从 IPOPT “解决到可接受的水平”中引发错误。
- apache-spark - 如何使用 Pandas UDF 在 pyspark 表中创建具有密集向量的新列?
- r - R:聚合前 30 天的数据
- telecommunication - 什么是无线信道和实际的区别呢?
- javascript - 如何在不为 Z 值创建这么多数组的情况下创建热图 Plotly
- java - 需要帮助理解使用 Arrays.sort() 的算法
- python - 在图像内部查找图像(使用 CV2)
- java - Intellij regex String 用方法参数替换类声明的新实例
- google-cloud-platform - 谷歌云部署模板是否可以通过增加引用计数器来共享另一个部署创建的资源