在Y轴上将matplotlib时间显示为HH:MM

时间:2018-09-14 09:56:59

标签: python matplotlib

我有一个日期时间事件列表,其中同时包含时间和日期信息。该列表包含相同的日期,只有时间从一个列表项更改为下一个。

我想在X轴上显示日期,在Y轴上显示时间的散点图。我可以通过从datetime列表中提取日期数据来获得X轴,如下所示:

x = [e.date() for e in events]

但是,我不能对时间数据做同样的事情:

# Results in TypeError:
# float() argument must be a string or a number, not 'datetime.time'
y = [e.time() for e in events]

在SO上阅读this answer后,可以通过以下操作直观地获得所需的结果:

import matplotlib.dates as mdates
y = [mdates.date2num(e) % 1 for e in events]

但是,这会将date2num转换后的标签显示为Y轴上的浮点,从0.0到1.0。

我该怎么做才能将标签显示为00:00到23:59,希望以可配置的滴答频率显示(例如,每小时,每4小时)。我无法在上面的SO链接中复制结果。

谢谢。

1 个答案:

答案 0 :(得分:-1)

您可以按照this post

中说明的步骤进行操作

另外在y轴上有时间:

plt.scatter(y,x)