将时间戳转换为可绘制的值数组

时间:2014-07-07 01:37:47

标签: python time strptime

我有一个时间值数组= [hh:mm:ss],秒数为小数,如13.80秒,15.90秒等等。我想做什么:

import time

for i in timestamp_array:
   new_time = time.strptime(i,"%H:%M:%S")

我收到错误:

ValueError: unconverted data remains: .80

我该如何处理? 谢谢!

1 个答案:

答案 0 :(得分:0)

由于您要绘制值,我建议使用matplotlib.dates,您也可以将时间转换为数字和向后转换。

In [12]:
import matplotlib.dates as mpd
mpd.datestr2num('12:23:12')

Out[12]:
735420.5161111112

In [13]:
mpd.num2date(735420.5161111112)

Out[13]:
datetime.datetime(2014, 7, 6, 12, 23, 12, tzinfo=<matplotlib.dates._UTC object at 0x051FD9F0>)

一个最小的例子:

plt.plot([mpd.datestr2num('12:23:12.89'), mpd.datestr2num('12:23:13.89')],
         [1,2], 'o')
ax=plt.gca()
ax.xaxis.set_major_locator(mpd.HourLocator())
ax.xaxis.set_major_formatter(mpd.DateFormatter('%H:%M:%S.%f'))

enter image description here