使用具有索引的Dataframe的Bokeh中的时间[英] TimeSeries in Bokeh using a dataframe with index

本文是小编为大家收集整理的关于使用具有索引的Dataframe的Bokeh中的时间的处理方法,想解了使用具有索引的Dataframe的Bokeh中的时间的问题怎么解决?使用具有索引的Dataframe的Bokeh中的时间问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试使用bokeh与包含年份和数字1的DateTime列绘制Pandas dataframe.如果DateTime指定为x,则行为是预期的(x轴中的岁月).但是,如果我使用set_index将DateTime列转为dataframe的索引,然后只在TimeSeries中指定y,我会在x轴上获得时间以毫秒为单位.最小的例子

import pandas as pd
import numpy as np
from bokeh.charts import TimeSeries, output_file, show

output_file('fig.html')
test = pd.DataFrame({'datetime':pd.date_range('1/1/1880', periods=2000),'foo':np.arange(2000)})
fig = TimeSeries(test,x='datetime',y='foo')
show(fig)

output_file('fig2.html')
test = test.set_index('datetime')
fig2 = TimeSeries(test,y='foo')
show(fig2)

这是预期的行为还是错误?我希望两种方法都有相同的照片.

欢呼!!

推荐答案

bokeh用于为内部原因添加索引,但由于不是最近的版本(> = 0.12.x),它不再这样做.值得注意的是,bokeh.charts API已被弃用并删除.使用稳定bokeh.plotting api的等效代码产生预期结果:

import pandas as pd
import numpy as np
from bokeh.plotting import figure, output_file, show
from bokeh.layouts import row

output_file('fig.html')

test = pd.DataFrame({'datetime':pd.date_range('1/1/1880', periods=2000),'foo':np.arange(2000)})

fig = figure(x_axis_type="datetime")
fig.line(x='datetime',y='foo', source=test)

test = test.set_index('datetime')

fig2 = figure(x_axis_type="datetime")
fig2.line(x='datetime', y='foo', source=test)
show(row(fig, fig2))

在此处输入图像描述

本文地址:https://www.itbaoku.cn/post/1727866.html