如何让文森特正确显示 pandas date/time 轴?

How to get vincent to display a pandas date/time axis correctly?

我有一个 pandas 数据框,我想在 vincent 可视化中使用它。我可以可视化数据,但是,X 轴应该显示为日期,而日期只是给出了 500、1000、1500 等整数索引。

数据框如下所示:

    weight      date
0   125.200000  2013-11-18

为简洁起见被截断了。

我的 ipython 笔记本中的文森特代码:

chart = vincent.Line(df[['weight']])
chart.legend(title='weight')
chart.axis_titles(x='Date', y='Weight')
chart.display()

我如何告诉文森特我的数据框包含的日期使得 X 轴标签就像上面数据框的日期一样,即 2013 年 11 月 18 日?

好的,这就是我所做的。我 运行 在使用 matplotlib 之前就遇到过这个问题,并且写了一篇关于它的博客 post (http://codrspace.com/szeitlin/biking-data-from-xml-to-plots-part-2/) 是非常痛苦的。文森特不完全一样,但本质上你必须做4个步骤:

  1. 如果您还没有将日期转换为日期时间对象

df['date_objs'] = df['date'].apply(pandas.to_datetime)

  1. 将您的日期时间对象转换为您想要的任何格式。
  2. 将您的日期时间对象放入索引

    df.index = df.index.values.astype('M8[D]')

  3. 告诉文森特你想绘制你的数据(重量)作为 y 轴。它会自动使用数据框的索引作为 x 轴。

    chart = vincent.Line(plot[['weight']]) 
    chart.axis_titles(x='dates', y='weight') 
    chart.display()