Python Bokeh工具提示文本格式

时间:2017-04-13 18:10:32

标签: python bokeh

参考指南中提供的工具提示示例显示了以下格式化示例:

hover.tooltips = [
    ("index", "$index"),
    ("(x,y)", "($x, $y)"),
    ("radius", "@radius"),
    ("fill color", "$color[hex, swatch]:fill_color"),
    ("foo", "@foo"),
    ("bar", "@bar"),
    ("baz", "@baz{safe}"),
    ("total", "@total{$0,0.00}"

3个示例{safe}{$0,0.00}"$color[hex, swatch]:fill_color"不明确:我在哪里可以找到有关它们的文档?

基本上我想了解什么是可能的,什么不是。

目前(例如)我有一个输入,我们是一个非常长的字符串(它是一篇报纸文章)我想格式化所以它只显示x个第一个字符。

其他示例我有一个字段@datetime,它从日期时间索引中检索其值。目前,工具提示将该值显示为int64个字符。如何使用Timestamp.strftime("%d-%m-%Y")等格式工具,以便以人类可读的格式显示日期时间?

但我希望能更清楚地了解散景作品的可能性/方式

1 个答案:

答案 0 :(得分:2)

由于这个答案最初发布,因此新的工作进入了Bokeh,使事情更简单。可以通过指定格式化程序直接通过悬停工具将日期时间字段格式化为日期时间,例如:

HoverTool(tooltips=[('label', '@datetime{%F}')],
          formatters={'datetime': 'datetime'})

不再需要预先格式化数据源中的日期字段,如下所示(尽管它仍然有效)。有关详细信息,请参阅Formatting Tooltip Fields

OLD ANSWER

这仍然是该项目的一个未解决的问题:

https://github.com/bokeh/bokeh/issues/1239

然而,鉴于最近的一些其他工作,现在应该以自然的方式实现此功能相当容易。我已安排下一个0.12.6里程碑的任务。

此外,尽管Bokeh拥有广泛而丰富的文档,但仍然存在偶然的差距。不幸的是,这恰好是其中之一。我注意到有一个未解决的问题需要改进:

https://github.com/bokeh/bokeh/issues/2595

我已对其进行了更新,以确保它也包含在0.12.6里程碑中。

与此同时,您最好的选择是预先格式化数据,因为您希望它在Python的工具提示中显示。然后向具有格式化版本的数据源添加一列,配置悬停工具以显示此列:

source.data['formatted_date'] = my_pretty_print(source.date['date'])

hover.tooltips = [ ("date", "@formatted_date") ]