使用matplotlib绘制时间值

时间:2013-06-11 08:45:48

标签: python time matplotlib

我有一个示例文本文件,如下所示:(test.txt)

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

我想将此X轴采用时间值和第二列绘制到y轴。

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轴显示500,1000,1500等。相反,我想将时间值显示为06:00:41,06:10:41,06:20:41等请帮助我?

1 个答案:

答案 0 :(得分: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)

如果您想要一个折线图,请尝试更改linestyledocs

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