使用Python';在x轴上绘制时间;s matplotlib

使用Python';在x轴上绘制时间;s matplotlib,python,datetime,matplotlib,time,graph,Python,Datetime,Matplotlib,Time,Graph,我正在从一个文本文件中读取数据,该文件包含以下格式的数据(日期-时间;微伏): e、 g.07.03.2017 23:14:01000;279 我希望使用matplotlib绘制一个图表,只捕获时间(x轴)并根据微伏(y轴)绘制它。到目前为止,我已经成功地从字符串中提取了time元素,并将其转换为datetime格式(如下所示) 我试图将每个时间值附加到x中进行绘图,但程序只是冻结,什么也不显示 以下是代码的一部分: from datetime import datetime import ma

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

e、 g.07.03.2017 23:14:01000;279

我希望使用matplotlib绘制一个图表,只捕获时间(x轴)并根据微伏(y轴)绘制它。到目前为止,我已经成功地从字符串中提取了time元素,并将其转换为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:01000”

我没有评论的名声,我不得不回答

datetime.datetime.time()
您能试试
datetime.datetime.timestamp()

见最后一行:

从日期时间导入日期时间
将matplotlib.pyplot作为plt导入
ecg=打开(文件2).readlines()
x=[]
对于范围内的线路(len(ecg)):
ecgtime=ecg[7:][line][:23]
ecgtime=datetime.strTime(ecgtime,'%d.%m.%Y%H:%m:%S,%f')
x、 追加(ecgtime.timestamp())
编辑:
timestamp()
在Python 3.3中可用。对于Python2,您可以使用

从时间导入mktime
...
x、 追加(mktime(ecgtime.timetuple()))

Hi rysson,我刚试过,但它给了我:AttributeError:'datetime.datetime'对象没有属性'timestamp'函数
datetime.datetime.timetamp
在3.3版中是新的。对于较旧的版本,您需要使用time.mktime(ecgtime.timetuple())。