如何在python中绘制时间序列

时间:2013-09-29 14:24:40

标签: python matplotlib plot

我一直在尝试从CSV文件中绘制时间序列图。我已设法读取文件并使用strptime将数据从字符串转换为日期并存储在列表中。当我尝试使用包含日期信息的列表在matplotlib中绘制测试图时,它将日期绘制为一系列点;也就是说,对于2012年5月31日19:00的日期,我在y轴上获得了2012,05,19,31,00处的点的图,其中x = 1的值等等。我知道这不是传递绘图日期信息的正确方法。有人能告诉我如何正确传递这些信息。

1 个答案:

答案 0 :(得分:91)

将x轴数据从文本转换为datetime.datetime,使用datetime.strptime

>>> from datetime import datetime
>>> datetime.strptime("2012-may-31 19:00", "%Y-%b-%d %H:%M")
 datetime.datetime(2012, 5, 31, 19, 0)

这是一个如何在拥有日期时间数组后绘制数据的示例:

import matplotlib.pyplot as plt
import datetime
import numpy as np

x = np.array([datetime.datetime(2013, 9, 28, i, 0) for i in range(24)])
y = np.random.randint(100, size=x.shape)

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

enter image description here