使用matlibplot绘制dateTime轴,其中dateTime格式为2013-10-15 18:59:45

时间:2013-10-18 20:36:15

标签: python datetime matplotlib

我正在尝试根据日期绘制信息。我有一份日期列表,格式为2013-10-15 18:59:45

我想要的是在没有vlines的情况下进行绘图,只需要一条线连接每个点。

我在epoch中转换了日期时间,但我希望以原始格式和垂直标签显示它

我试图做这样的事情:Creating graph with date and time in axis labels with matplotlib

这是我第一次使用matlibplot,我花了3天时间尝试这样做。我赶时间,你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

假设您有一个名为" mydata.log"的文件。包含以下数据:

2015-11-16 10:25:11 1.5
2015-11-16 10:25:16 2.2
2015-11-16 10:25:21 3.7

你可以按如下方式绘制它:

#!/usr/bin/python

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

with open("mydata.log") as f:
    data = f.readlines()

x = [row.split(' ')[0:2] for row in data]
x = [datetime.strptime(' '.join(row), '%Y-%m-%d %H:%M:%S') for row in x]
y = [row.split(' ')[2] for row in data]

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title("title")
ax.set_xlabel('time')
ax.set_ylabel('mydata')

hfmt = dates.DateFormatter('%y/%m/%d %H:%M:%S')
ax.xaxis.set_major_formatter(hfmt)

ax.plot(x,y, c='r', marker='+', label='mydata')

plt.xticks(rotation='vertical')
plt.subplots_adjust(bottom=.3)
plt.grid()
plt.show()