我正在从一个文本文件中读取数据,该文件包含以下格式的数据(日期时间;微伏):
例如07.03.2017 23:14:01,000; 279
我希望使用 matplotlib 绘制图形,方法是仅捕获时间(x轴)并将其相对于microVolts(y轴)绘制。到目前为止,我已经设法从字符串中提取时间元素并将其转换为 datetime 格式(如下所示)。
我试图将每个时间值附加到x上进行绘制,但是程序只是冻结,什么也不显示。
这是代码的一部分:
from datetime import datetime
import matplotlib.pyplot as plt
ecg = open(file2).readlines()
x = []
for line in range(len(ecg)):
ecgtime = ecg[7:][line][:23]
ecgtime = datetime.strptime(ecgtime, '%d.%m.%Y %H:%M:%S,%f')
x.append(ecgtime.time())
我知道datetime格式是造成此问题的原因,但我无法弄清楚如何将其转换为float / int,如其所说:
'float()的无效文字:23:14:01,000'
答案 0 :(得分:1)
我无可奉告的声誉,无须回答。
datetime.datetime.time()
转换为datetime.time
对象,您需要float。
您可以尝试datetime.datetime.timestamp()
吗?
查看最后一行:
from datetime import datetime
import matplotlib.pyplot as plt
ecg = open(file2).readlines()
x = []
for line in range(len(ecg)):
ecgtime = ecg[7:][line][:23]
ecgtime = datetime.strptime(ecgtime, '%d.%m.%Y %H:%M:%S,%f')
x.append(ecgtime.timestamp())
编辑:timestamp()
可用于正弦Python 3.3。对于Python 2,您可以使用
from time import mktime
...
x.append(mktime(ecgtime.timetuple()))