簡體   English   中英

使用matplotlib繪制時間時刪除%f個字符

[英]Remove %f character when plotting time with matplotlib

我在CSV文件中具有以下時間序列:

20:01:20,4254215
20:01:36,5216326
20:02:45,6363636
20:02:48,2553266
...

第一列是時間,格式為Hour:Minutes:Seconds。 第二個是另一個數據。 我按以下方式繪制它:

import matplotlib.pyplot as plt 
import csv
from datetime import datetime

...

with open('mydata.dat', 'r') as csvfile:
    myfile = csv.reader(csvfile, delimiter=',')
    for row in myfile:
        a = datetime.strptime((row[0]),'%H:%M:%S')
        x.append((a))
        y.append(row[1])

...

plt.gcf().autofmt_xdate()
plt.plot(x, y)
plt.show()

問題在於所生成的圖形在x軸上具有%f。 有什么辦法可以避免這種情況,只顯示Hours:Minutes:Seconds?

我附上當前結果以顯示我的問題:

生成圖

以下代碼

import matplotlib.pyplot as plt 
import csv
from datetime import datetime

x = [];y=[]

with open('data/mydata.dat', 'r') as csvfile:
    myfile = csv.reader(csvfile, delimiter=',')
    for row in myfile:
        a = datetime.strptime((row[0]),'%H:%M:%S')
        x.append((a))
        y.append(row[1])


plt.plot(x, y)
plt.gcf().autofmt_xdate()

plt.show()

產生此圖像,在ticklabels中不存在任何"%f"

在此處輸入圖片說明

如果看到不同的圖像,則可能是因為您使用了舊版本的matplotlib。 您可以嘗試顯式設置DateFormatter

import matplotlib.dates
fmt = matplotlib.dates.DateFormatter('%H:%M:%S')
plt.gca().xaxis.set_major_formatter(fmt)

您也可以(或另外)嘗試使用plot.plot_date()而不是plt.plot()

暫無
暫無

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

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