bokeh.charts.Area 中的日期时间 x 轴
Datetime x axis in bokeh.charts.Area
为什么我用 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)
有什么方法可以让我 bokeh.charts.Area
识别我的 datetime
数据,还是我必须自己使用 figure()
构建绘图?
其他数据:Python2.7
上的散景 0.11.1
问题出在 from __future__ import unicode
语句。* 删除该行解决了问题。
核心问题是x='date'
关键字参数必须是字节。否则 bokeh 将无法在数据框中找到密钥。在这种情况下它不会显示警告或错误,它只是默默地用数字索引 (0, 1, 2, 3) 替换它,它被日期轴解释为毫秒。
* 遗漏了原始问题,因为在与剩余的 .egg-info 目录发生一些 pip 混淆后,同样的问题也浮出水面。
为什么我用 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)
有什么方法可以让我 bokeh.charts.Area
识别我的 datetime
数据,还是我必须自己使用 figure()
构建绘图?
其他数据:Python2.7
上的散景 0.11.1问题出在 from __future__ import unicode
语句。* 删除该行解决了问题。
核心问题是x='date'
关键字参数必须是字节。否则 bokeh 将无法在数据框中找到密钥。在这种情况下它不会显示警告或错误,它只是默默地用数字索引 (0, 1, 2, 3) 替换它,它被日期轴解释为毫秒。
* 遗漏了原始问题,因为在与剩余的 .egg-info 目录发生一些 pip 混淆后,同样的问题也浮出水面。