在bokeh.charts.Area中的日期时间x轴

时间:2016-03-10 08:05:09

标签: python bokeh

为什么我用datetime系列作为x轴绘制我的数据,它被解释为datetime值,但错误的一个:我的2016年被解释为1970-1-1之后的毫秒。代码:

from __future__ import absolute_import, division, print_function
from __future__ import unicode_literals

from datetime import datetime
import pandas as pd
from bokeh.charts import Area, show, output_file

df = pd.DataFrame()
df['date'] = [datetime(2016, 1, 1), datetime(2016, 1, 2), datetime(2016, 1, 3)]
df['v1'] = [1, 2, 3]
df['v2'] = [4, 4, 3]

p = Area(df, x='date', y=['v1', 'v2'], title="Area Chart",
         legend="top_left", xscale='datetime', stack=True,
         xlabel='time', ylabel='values')

output_file("area.html", title="Area Chart")
show(p)

Area chart screenshot

我有没有办法bokeh.charts.Area识别我的datetime数据,或者我是否必须使用figure()自行构建地图?

其他数据:Python 2.7上的散景0.11.1

1 个答案:

答案 0 :(得分:2)

问题是from __future__ import unicode声明。*删除该行修复了问题。

核心问题是x='date'关键字参数必须是字节。否则,bokeh将无法在数据框中找到关键字。在这种情况下它没有显示警告或错误,它只是默默地用数字索引(0,1,2,3)替换它,它被日期轴解释为毫秒。

<小时/> *留下原始问题,因为同样的问题也在与剩余的.egg-info目录混淆了之后浮出水面。