Matplotlib X轴年份采用四位显示

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

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

Matplotlib 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, 25, 6)))

这行设置次刻度的数量,这里按小时设置,range(0, 25, 6)生成一个4格刻度的列表。如果想生成2小时一小格,那么就需要修改为range(0, 25, 2);如果想改为12小时一小格,修改为range(0, 25, 12)。

host.tick_params(axis = "both", direction = "out", labelsize = 10)

这行代码与前面的例子是一样的,没有做任何的修改。还是让坐标轴的刻度线朝向外面,以及坐标显示的字体大小设置为10。

date1 = datetime.date(2020, 12, 1)

date2 = datetime.date(2020, 12, 6)

delta = datetime.timedelta(hours=6)

dates = mdates.drange(date1, date2, delta)

print(dates)

这段代码,就是生成日期的数据集。如果你的数据是现成的,只要转换为浮点格式,就可以了,不需要像这样产生。

host.set_xlim(dates[0], dates[-1])

这行代码是设置X轴坐标的起始和终止刻度,这里是把时间第一个值设置为坐标轴原点位置,最后一个日期为X轴坐标轴的结束位置。这样做的目的就是为了X轴坐标全部显示相关的数据,没有一点多余的位置显示其它不相关的数据。

y = np.arange(len(dates))

host.plot_date(dates, y**2, 'b-', alpha = 0.7)

第一行代码是生成一个曲线y的序列,然后第二行代码画出时间与y平方的曲线,透明度还是采用0.7。

通过上面的例子,可以发现host.xaxis.set_major_formatter()函数是控制主刻度显示日期的格式,host.xaxis.set_minor_locator()是控制次刻度的间隔个数,也就是表示每一小格的精度,也是物理上的分辨率,一个尺子的刻度是不能随便设置的,因为不同的工具,它的测试精度不一样。

整个例子的代码如下:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime

#
fig, host = plt.subplots()  #创建子图
host.grid(False)

#
host.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
host.xaxis.set_minor_locator(mdates.HourLocator(range(0, 25, 6)))
host.tick_params(axis = "both", direction = "out", labelsize = 10)

date1 = datetime.date(2020, 12, 1)
date2 = datetime.date(2020, 12, 6)
delta = datetime.timedelta(hours=6)
dates = mdates.drange(date1, date2, delta)
print(dates)
host.set_xlim(dates[0], dates[-1])

y = np.arange(len(dates))
host.plot_date(dates, y**2, 'b-', alpha = 0.7)

fig.autofmt_xdate()

plt.tight_layout()
plt.show()
赞(0)
未经允许不得转载:极客笔记 » Matplotlib X轴年份采用四位显示
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址