我有一个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个步骤:
- 将日期转换为datetime对象(如果您还没有)
df['date_objs'] = df['date'].apply(pandas.to_datetime)
- 将日期时间对象转换为所需的任何格式
-
将日期时间对象放入索引
df.index = df.index.values.astype('M8[D]')
-
告诉vincent你想把你的数据(重量)画成y轴。它将自动使用数据帧的索引作为x轴。
chart = vincent.Line(plot[['weight']]) chart.axis_titles(x='dates', y='weight') chart.display()