我有一个日期时间事件列表,其中同时包含时间和日期信息。该列表包含相同的日期,只有时间从一个列表项更改为下一个。
我想在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链接中复制结果。
谢谢。