簡體   English   中英

使用 Python 的 matplotlib 在 x 軸上繪制時間

[英]Plotting time on the x-axis with Python's matplotlib

我正在從包含格式數據(日期時間;微伏)的文本文件中讀取數據:

例如 07.03.2017 23:14:01,000; 279

我希望使用matplotlib通過僅捕獲時間(x 軸)並將其與微伏(y 軸)繪圖來繪制 plot 圖表。 到目前為止,我已經設法從字符串中提取時間元素並將其轉換為日期時間格式(如下所示)。

我嘗試將 append 的每個時間值轉換為 x 到 plot,但程序只是凍結並且什么也不顯示。

以下是部分代碼:

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

我知道日期時間格式導致了這個問題,但我不知道如何將它轉換為浮點/整數,因為它說:

'float() 的無效文字:23:14:01,000'

我沒有評論的聲譽,我必須回答。

datetime.datetime.time()轉換為datetime.time object,你需要浮點數。
你能試試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()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM