Python Bokeh HoverTool格式化程序错误:“HoverTool的意外属性'格式化程序'”

时间:2017-08-24 07:52:20

标签: python hover bokeh

我使用jupyter笔记本进行可视化练习,然后我按照http://bokeh.pydata.org/en/latest/docs/user_guide/tools.html#basic-tooltips上的代码

the code on the website

它有效,所以我尝试添加“格式化工具提示”,如下面的代码。

我只是添加了'formatters'属性,但错误发生了。

from bokeh.plotting import figure, ColumnDataSource
from bokeh.models import HoverTool
from bokeh.io import output_notebook, show

output_notebook()

source = ColumnDataSource(data=dict(
    x=[1, 2, 3, 4, 5],
    y=[2, 5, 8, 2, 7],
    desc=['A', 'b', 'C', 'd', 'E'],
))

hover = HoverTool(
        tooltips=[
            ("index", "$index"),
            ("(x,y)", "($x, $y)"),
            ("desc", "@desc"),
        ],
        formatters={
            'desc' : 'printf', # use 'datetime' formatter for 'date' field
                               # use default 'numeral' formatter for other fields
        }
    )

p = figure(plot_width=400, plot_height=400, tools=[hover],
           title="Mouse over the dots")

p.circle('x', 'y', size=20, source=source)

错误消息:

AttributeError: unexpected attribute 'formatters' to HoverTool, possible attributes are anchor, attachment, callback, js_callbacks, line_policy, mode, name, names, plot, point_policy, renderers, show_arrow, tags or tooltips

1 个答案:

答案 0 :(得分:3)

以上评论肯定是正确的。 .formatters的{​​{1}}属性最近才添加到PR #6183,这是HoverTool版本的一部分。您需要至少安装Bokeh 0.12.6或更新才能使用它。

Bokeh仍在添加新功能,因此如果您没有安装最新版本的Bokeh,请务必参考您实际安装的版本的文档,例如。

http://bokeh.pydata.org/en/0.12.5/

专门为版本0.12.6提供文档。此外,您始终可以从CDN获取特定于已安装版本的示例代码。对于版本0.12.5,还有:

https://cdn.pydata.org/bokeh/examples/examples-0.12.5.zip