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)
评论:
我不知道为什么没有有效的默认值,但也许是因为有太多的选择,任何默认值都会以某种方式出错。
我的散景 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)
评论:
我不知道为什么没有有效的默认值,但也许是因为有太多的选择,任何默认值都会以某种方式出错。