我有一堆MM / DD / YYYY形式的日期。我使用解析器将它们转换为类似于datetime.datetime(YYYY, MM, DD, 0, 0)的内容。

我在数组y中具有与每个日期相对应的数据,并希望将两个数组相互绘制。使用matplotlib.dates.date2num我将它们绘制为

x= matplotlib.dates.date2num(dates)

plot_date(dates,y)


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



如我所希望的那样,它看起来像一个时间序列。

我怎样才能解决这个问题

最佳答案

大概您正在阅读的日期和数据没有按时间顺序排列,在这种情况下,您需要先对它们进行排序,然后再将它们传递给plot_date()

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


无论您对datetime实例(您的dates)或其数值等效项(您的x)的列表/数组进行排序,这都应该起作用。

关于python - 用plot_date绘制日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29325734/

10-12 22:25