gpt4 book ai didi

python - Bokeh 中的 TimeSeries 使用带索引的数据框

转载 作者:太空狗 更新时间:2023-10-29 21:10:55 25 4
gpt4 key购买 nike

我正在尝试使用 Bokeh 绘制一个 Pandas 数据框,其中包含一个包含年份和一个数字的 DateTime 列。如果 DateTime 指定为 x,则行为是预期的(x 轴中的年份)。但是,如果我使用 set_indexDateTime 列转换为数据帧的索引,然后仅在 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))

enter image description here

关于python - Bokeh 中的 TimeSeries 使用带索引的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34974615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com