使用Python的matplotlib

时间:2019-11-16 20:03:32

标签: python datetime matplotlib time graph

我正在从一个文本文件中读取数据,该文件包含以下格式的数据(日期时间;微伏):

例如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'

1 个答案:

答案 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()))