我一直在尝试从CSV文件绘制时间序列图。我设法读取了文件,并使用strptime
将数据从字符串转换为日期,并存储在列表中。当我尝试在matplotlib中绘制一个包含日期信息列表的测试图时,它将日期绘制为一系列点。也就是说,对于日期为2012年5月31日19:00的时间,我在y轴上得到一个在2012、05、19、31、00点带有点的图,其中x = 1的值依此类推。我知道这不是传递日期信息进行绘图的正确方法。有人可以告诉我如何正确传递此信息。
最佳答案
将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()