深入浅出matplotlib(28):使用模块matplotlib.dates实现X轴日期显示二

前面学习了X轴日期显示的第一个例子,这里继续来学习第二个例子,这样才可以与前面的知识形成对比,形成增量的变化,才能更加深刻体会到代码的作用,函数的功能,熟练地运用日期显示的知识。

 

接着下来实现的结果如下图:

在这里,X轴还是显示日期,但是改了一种格式,年份采用四位方式,由于它采用%Y的设置,而前一个例子采用小写的y,这是python日期的格式。与前面不一样的地方,比如每一个大格里,有四个小格,每个小格是6个小时一格。因此相对于前面的代码,作了下面的修改:

host.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))

这行设置主刻度上日期显示的方式。

host.xaxis.set_minor_locator(mdates.HourLocator(range(0,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
抱歉,我之前的回答有误。确实,Matplotlib 的 `matplotlib.dates` 模块中没有 `QuarterLocator` 类。如果你想设置季度标签,可以使用以下方法之一: 方法1:手动设置刻度位置和标签 ```python import matplotlib.pyplot as plt import datetime # 创建日期数据 dates = [datetime.date(2022, 1, 1), datetime.date(2022, 4, 1), datetime.date(2022, 7, 1), datetime.date(2022, 10, 1)] values = [10, 20, 15, 25] # 创建图形对象和子图对象 fig, ax = plt.subplots() # 绘制数据图形 ax.plot(dates, values) # 设置 x 刻度位置为季度开始的月份 ax.set_xticks([datetime.date(d.year, (d.month - 1)//3*3 + 1, 1) for d in dates]) # 设置 x 刻度标签为季度和年份的格式 ax.set_xticklabels([f"Q{((d.month - 1)//3) + 1}\n{d.year}" for d in dates]) # 显示图形 plt.show() ``` 方法2:使用 pandas 库进行处理 ```python import matplotlib.pyplot as plt import pandas as pd # 创建日期数据 dates = pd.date_range(start='2022-01-01', end='2022-12-31', freq='M') values = [10, 20, 15, 25] * 3 # 创建 DataFrame 对象 df = pd.DataFrame({'date': dates, 'value': values}) # 创建图形对象和子图对象 fig, ax = plt.subplots() # 绘制数据图形 ax.plot(df['date'], df['value']) # 设置 x 刻度为季度开始的日期 ax.xaxis.set_major_locator(pd.QuarterBegin()) # 设置日期格式 ax.xaxis.set_major_formatter(pd.DateFormatter("%Y-Q%q")) # 显示图形 plt.show() ``` 这两种方法都可以实现设置季度标签的效果,你可以根据自己的需求选择其中之一。对于较复杂的日期刻度设置,使用 pandas 库可以更加方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值