用日期绘制numpy rec数组

时间:2013-05-02 19:46:32

标签: python numpy matplotlib

我读了这种结构的酸洗numpy数组:

>>> h.shape
(256,)
>>> h[:10]
rec.array([(datetime.date(2011, 1, 2), 1, -3, 1014),
       (datetime.date(2011, 1, 3), 3, -6, 1016),
       (datetime.date(2011, 1, 4), 0, -9, 1023),
       (datetime.date(2011, 1, 5), 1, -6, 1023),
       (datetime.date(2011, 1, 6), 3, -2, 1026),
       (datetime.date(2011, 1, 7), 2, -1, 1029),
       (datetime.date(2011, 1, 8), -1, -1, 1027),
       (datetime.date(2011, 1, 9), -1, -2, 1025),
       (datetime.date(2011, 1, 10), -1, -2, 1025),
       (datetime.date(2011, 1, 11), 3, 3, 1020)], 
      dtype=[('date', '|O4'), ('high', '|i1'), ('low', '|i1'), ('pres', '<i2')])

并且无法找到如何使用matplotlib绘制它。我尝试使用plt.plot_date(...)但是在任何组合上我都会收到错误。有人能指出我正确的方向如何用X轴作为日期和Y轴绘制简单的线图,来自这个数组的任何其他值,让我们说pres标记数据?

1 个答案:

答案 0 :(得分:0)

鉴于hnumpy.recarray,您可以使用

实现基本绘图
plt.plot_date(h.date, h.pres, linestyle='-', marker=None)
plt.gcf().autofmt_xdate() # Optional; included to format x-axis for dates

可能需要进一步定制以使绘图看起来像您想要的那样。 enter image description here