【发布时间】:2014-05-31 22:52:09
【问题描述】:
我在绘制数据时遇到问题,我只想绘制 HH:MM:SS,但绘图显示 HH:MM:SS.sssss 或 HH:MM:SS.%f。下面我将详细说明我做了什么(matplotlib、numpy 已经导入)
方法一
加载要绘图的文件
import datetime as dt
data=genfromtxt('27JAN12.K7O', delimiter=2*[4]+5*[2]+8*[7])
f245 = data[:, 7]
生成时间数组(每秒 1 个数据)
base = dt.datetime(2014,1,27,11,07,59)
time = array([base + dt.timedelta(seconds=i) for i in range(len(data))])
plot(time,f245)
当我这样做时,我得到了这个情节(具有不必要的精确度)
我的时间是 18:15:00.000000(我喜欢 18:15:00)
方法二
同样的方式加载数据,本例中只有我取了数据的时间,并在时间字符串中覆盖
t = data[:,1] #in decimals e.g. 18,5 represents 18:30:00
tstr = map(str, [dt.timedelta(seconds=x) for x in t])
time = []
for i in tstr:
try:
time.append(dt.datetime.strptime(i, "%H:%M:%S"))
except ValueError:
time.append(dt.datetime.strptime(i, "%H:%M:%S.%f"))
plot(time,f245)
在这种情况下,我的时间大概是 18:15:00.%f
那么,我该如何修复呢?
【问题讨论】:
标签: python datetime matplotlib plot