Python 如何在matplotlib中打印datetime.time?

Python 如何在matplotlib中打印datetime.time?,python,matplotlib,Python,Matplotlib,我有两个要显示的阵列: x : [datetime.time(0, 17, 47, 782000), ...ect y : [1712, 2002, ...ect 我正在尝试将x转换为matplotlib使用的格式,但它始终无法工作 x = [matplotlib.dates.date2num(i) for i in x] 但是我得到了这个错误 AttributeError: 'datetime.time' object has no attribute 'toordinal' 我的问题与

我有两个要显示的阵列:

x : [datetime.time(0, 17, 47, 782000), ...ect
y : [1712, 2002, ...ect
我正在尝试将x转换为matplotlib使用的格式,但它始终无法工作

x = [matplotlib.dates.date2num(i) for i in x]
但是我得到了这个错误

AttributeError: 'datetime.time' object has no attribute 'toordinal'
我的问题与时间格式有关: 原始信息如下所示:

00:04:49.251
然后我转换它

datetime.datetime.strptime(string, "%H:%M:%S.%f").time()
所以类型是

<type 'datetime.time'>

我相信您使用的是时间模块,因为它需要一个datetime对象

对于错误,您可以使用类似的方法(我99%确信这会解决错误)


这里的问题是,您指定的
datetime.time
对象只包含一天中的时间信息。正如
Emanuele Paolini
在他们的评论中指出的那样,
matplotlib
希望有
datetime.datetime
对象,这些对象除了携带时间外还携带日期

您可以执行以下转换:

import datetime

my_day = datetime.date(2014, 7, 15)
x_dt = [ datetime.datetime.combine(my_day, t) for t in x ]
现在您可以将
x_dt
plot
功能一起使用


这种方法的缺点是,您可能会在绘图中的某个位置获得日期,但这可以通过更改标签设置来解决。

似乎maplotlib想要的是datetime而不是time对象。我认为matplotlib应该引入按datetime.time或其他“时钟时间”数据类型绘图的功能,就像datetime一样。有些数据就是这种格式,现在您需要将其转换为datetime对象(添加一个在您的用例中可能没有意义的随机且无用的日期组件),然后使用标签格式将其提取出来。
import datetime

my_day = datetime.date(2014, 7, 15)
x_dt = [ datetime.datetime.combine(my_day, t) for t in x ]