簡體   English   中英

Python:針對X軸上的時間繪制數據

[英]Python: Plot data against time in X axis

我得到了這樣的數據,我想繪制溫度與時間的關系

time=`['16:00:00', '16:00:00.013733', '16:00:00.020599', '16:00:00.034332', 
'16:00:00.041199', '16:00:00.048065', '16:00:00.061798', '16:00:00.068665', 
'16:00:00.075531', '16:00:00.089264', '16:00:00.102997', '16:00:00.109863', 
'16:00:00.123596', '16:00:00.130463', '16:00:00.137329', '16:00:00.151062', 
'16:00:00.157928', '16:00:00.171661', '16:00:00.178528', '16:00:00.192261']`

temperature=`[ 691.70001221,  691.54998779,  691.90002441,  691.79998779,
               691.29998779,  691.65002441,  691.59997559,  691.79998779,
               691.95001221,  692.34997559,  691.59997559,  691.34997559,
               690.90002441,  691.40002441,  691.95001221,  690.84997559,
               691.54998779,  691.70001221,  691.95001221,  691.59997559]`

我試圖做到這一點

import datetime as DT
datetimes = [DT.datetime.strptime(t, "%H:%M:%S") for t in time]

我停在這里,因為它出現了錯誤

ValueError: unconverted data remains: .013733

我認為在時間安排中提到秒的小數

謝謝

您的時間以兩種不同的格式進行格式化(即一種不帶秒的小數,另一種帶秒),因此您需要try兩種格式:

datetimes = []
for t in time:
    try:
        datetimes.append(DT.datetime.strptime(t, "%H:%M:%S"))
    except ValueError:
        datetimes.append(DT.datetime.strptime(t, "%H:%M:%S.%f"))

另外,如果您確定其余的所有時間都不是幾分之一秒,則可以單獨處理第一個:

datetimes = ([DT.datetime.strptime(time[0], "%H:%M:%S")] + 
             [DT.datetime.strptime(t, "%H:%M:%S.%f") for t in time[1:]])

您有格式字符串的異構集合。 一些(第一個)的格式為"%H:%M:%S" ,另一些(其余的)的格式為"%H:%M:%S.%f" 因此,編寫一個輔助函數:

def datetime_helper(formats, s):
    for f in formats:
        try:
            return datetime.strptime(s, f)
        except ValueError:
            pass

那么您可以執行以下操作:

my_formats = "%H:%M:%S.%f","%H:%M:%S"

[datetime_helper(my_formats,x) for x in time]

暫無
暫無

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

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