【问题标题】:Plot numpy rec array with date用日期绘制 numpy rec 数组
【发布时间】:2013-04-27 02:56:14
【问题描述】:

我用这种结构读取了腌制的 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 标记数据?

【问题讨论】:

  • 这个工作date_demo 和这个date_index_formatter
  • 啊,对...我忘了recarray的视图属性。谢谢!
  • 那么这是否回答了您的问题?如果是这样,您应该添加您所做的作为答案并接受它。

标签: python numpy matplotlib


【解决方案1】:

鉴于hnumpy.recarray,您可以通过使用实现基本绘图

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

情节可能需要进一步定制才能看起来像您想要的那样。

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多