2013-06-11 2 views
1

У меня есть текстовый файл образец следующим образом: (test.txt)значения Plot Времени с Matplotlib

06:00:41 2 
06:10:41 4 
06:20:41 6 
06:25:41 8 

Я хочу, чтобы построить это значение времени принимая для оси X и 2-й столбец на оси у.

import matplotlib.pyplot as plt 
import datetime 
import matplotlib.dates as mdates 
import time 
import numpy as np 


f2 = open('test.txt', 'r') 
lines = f2.readlines() 
f2.close() 


x1 = [] 
y1 = [] 


for line in lines: 
    p = line.split() 
    a = time.strptime((p[0]),"%H:%M:%S") 
    x1.append((a)) 
    y1.append(float(p[1])) 

xv = np.array(x1) 
yv = np.array(y1) 


plt.plot(xv, yv) 

plt.show() 

Вот как я это замышляю. Но X-Axis показывает 500,1000,1500 и т. Д. Вместо этого я хочу показать значения времени как 06: 00: 41,06: 10: 41,06: 20: 41 и т. Д. Пожалуйста, помогите мне?

ответ

1

Вы попробовали plot_date?

Это может помочь, если вы кладете ваши данные временных рядов, как datetime значений

from datetime import datetime 

for line in lines: 
    p = line.split() 
    xv.append(datetime.strptime(p[0], '%H:%M:%S')) 

fig, ax = plt.subplots() 
ax.plot_date(xv, yv) 

Если вы хотите сюжетной линии, попробуйте изменить linestyle (docs)

ax.plot_date(xv, yv, linestyle='-') 
+0

Дополнительная помощь: Почему это показанный как график рассеяния? Я хочу иметь его как линию? –