如何让vincent正确显示熊猫日期/时间轴



我有一个pandas数据帧,我想在vincent可视化中使用它。我可以可视化数据,然而,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?

好吧,下面是我所做的。我以前在matplotlib中遇到过这个问题,非常痛苦,以至于写了一篇关于它的博客文章(http://codrspace.com/szeitlin/biking-data-from-xml-to-plots-part-2/)。Vincent不完全一样,但本质上你必须做4个步骤:

  1. 将日期转换为datetime对象(如果您还没有)

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()
    

最新更新