Bokeh HoverTool 日期时间格式化程序不起作用

Bokeh HoverTool datetime formatter not working

我的散景 HoverTool 代码如下:

p = figure(
        plot_height=250,
        x_axis_type='datetime',
    )
p.vbar(x=data_df['date'].dt.to_pydatetime(), top=data_df['data'].values, width=datetime.timedelta(1))
hover_tool = HoverTool(
        tooltips=[('Count', '@top'), ('Date', '@x')], mode='vline', formatters={'$x': 'datetime'}
    )
p.add_tools(hover_tool)

我仍然得到图像上可以看到的日期的数字格式。我尝试了 formatters={'@x': 'datetime'},但没有成功。

如果您使用 $x 而不是 @x 并将 DatetimeTickFormatter 支持的所列格式之一添加到 ('Date', '$x'),例如 ('Date', '$x{%F}').有很多选择,您可以 select 选择您最喜欢的那个。

最小示例

import pandas as pd
from bokeh.plotting import show, figure, output_notebook
from bokeh.models import HoverTool, ColumnDataSource
output_notebook()

data_df = pd.DataFrame({'date':pd.date_range('2022-05-13', freq='D', periods=10), 'top':list(range(10))})

p = figure(
        plot_height=250,
        x_axis_type='datetime',
    )
p.vbar(x=data_df['date'], top=data_df['top'], width=pd.Timedelta('12H'))
hover_tool = HoverTool(
        tooltips=[('Count', '@top'), ('Date', '$x{%F}')], mode='vline', formatters={"$x": "datetime"}
    )
p.add_tools(hover_tool)
show(p)

评论:

我不知道为什么没有有效的默认值,但也许是因为有太多的选择,任何默认值都会以某种方式出错。