时间格式是这样的 47:48.1 这里47分48秒1毫秒
答案 0 :(得分:4)
这样的事情应该让你开始:
import csv
import datetime as dt
import matplotlib.pyplot as plt
x,y = [],[]
csv_reader = csv.reader(open('data.csv'))
for line in csv_reader:
x.append(int(line[0]))
y.append(dt.datetime.strptime(line[1],'%M:%S.%f'))
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(y,x,'o-')
fig.autofmt_xdate()
plt.show()
假设data.csv
文件包含以下数据:
0,43:48.1 1,45:13.1 2,47:50.1 3,55:02.3
结果如下:
答案 1 :(得分:1)
第三部分看起来不像毫秒,你确定它不只是第二部分的小数点吗?如果是这样,试试这个(其中t_cvs是字符串):
import matplotlib.pyplot as plt
t_cvs = '23:12.1,24:59.2,26:09.4' # or whatever
t1 = [t.split(':') for t in t_cvs.split(',')]
time = [60.*float(t[0]) + float(t[1]) for t in t1]
plt.plot(time)
plt.show()
答案 2 :(得分:0)
阅读:
def convert(s):
s = s.split(':')
minutes = int(s[0])
s = s[1].split('.')
seconds = int(s[0])
msec = int(s[1])
return (60*minutes + seconds)*1000 + msec
fin = open(filename)
times = [convert(s) for s in fin.read().split(',')]
fin.close()
注意,如果您有 lot 次,请将lambda定义为其他地方的函数。
现在times
包含一个整数列表(毫秒),您可以像平常一样绘制。