[英]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.