用plot_date绘制日期

时间:2015-03-29 04:54:14

标签: python date datetime matplotlib

我有MM / DD / YYYY形式的一堆日期。我使用解析器将它们变成看起来像datetime.datetime(YYYY, MM, DD, 0, 0) 的东西。

我有数据对应于数组y中的每个日期,并且想要将两个数组相互映射。使用matplotlib.dates.date2num我将它们绘制为

x= matplotlib.dates.date2num(dates)

plot_date(dates,y)

当我这样做时,我得到以下情节

enter image description here

我希望看起来像时间序列的东西。

如何解决此问题

1 个答案:

答案 0 :(得分:2)

据推测,您正在阅读的日期和数据不符合时间顺序,在这种情况下,您需要在它们传递到plot_date()之前对它们进行排序:< / p>

s = np.argsort(dates)
plot_date(dates[s],y[s])

无论您对datetime个实例的列表/数组(您的dates)还是数字等价物(您的x)进行排序,这都应该有效。