如何让vincent正确显示pandas日期/时间轴?

时间:2015-03-26 21:09:37

标签: python date pandas vincent

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

数据框如下所示:

    weight      date
0   125.200000  2013-11-18

为简洁起见。

我的ipython笔记本中的vincent代码:

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

我如何告诉vincent我的数据框包含的日期使得X轴标签就像上面的数据框日期,即2013-11-18?

1 个答案:

答案 0 :(得分:0)

好的,所以这就是我的所作所为。我之前使用matplotlib遇到了这个问题,写了一篇关于它的博客文章(http://codrspace.com/szeitlin/biking-data-from-xml-to-plots-part-2/)真是太痛苦了。文森特不完全一样,但基本上你必须做4个步骤:

  1. 将您的日期转换为日期时间对象,如果您还没有
  2. df['date_objs'] = df['date'].apply(pandas.to_datetime)

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

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

    3. 告诉vincent您想要将数据(权重)绘制为y轴。它将自动使用数据框的索引作为x轴。

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