Matplotlib X轴按小时显示

Matplotlib X轴日期显示实现了日期的格式显示,接着下来实现一个简单的按小时显示,比如很多天气预报都是采用按小时进行温度提示,如下图:

Matplotlib X轴按小时显示

可以看到,X轴的坐标是按小时进行增加,然后曲线里有数据点,再连接起来的曲线。要产生这样的格式的图,matplotlib又要怎么样来编写呢?

其实要实现这种格式的显示是比较简单的,首先修改X轴的主刻度显示:

host.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))

这里设置为按小时和分钟显示。

接着生产按小时增加数据:

x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]

y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

x数据是从当前时间开始,按1小时的方式来增加,总共12个小时。y轴的数据是随机生成的数据。

host.plot_date(x,y, 'b-')

host.scatter(x, y, c = 'b')

有了数据之后,就可以先把曲线连接起来,再接着调用scatter()函数来标记数据点的位置。

通过上面简单的几行代码,就可以完成了按小时显示的时间曲线图了。整个结果如下:

Matplotlib X轴按小时显示

整个例子的代码如下:

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

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

#
host.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))

x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

host.plot_date(x,y, 'b-')
host.scatter(x, y, c = 'b')

fig.autofmt_xdate()

plt.tight_layout()
plt.show()

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程