Python Bokeh HoverTool 格式化程序错误:“HoverTool 的意外属性‘格式化程序’”
Posted
技术标签:
【中文标题】Python Bokeh HoverTool 格式化程序错误:“HoverTool 的意外属性‘格式化程序’”【英文标题】:Python Bokeh HoverTool formatters error: "unexpected attribute 'formatters' to HoverTool" 【发布时间】:2018-02-02 00:00:41 【问题描述】:我用jupyter notebook做了一个可视化的练习,然后我按照http://docs.bokeh.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
【问题讨论】:
我记得曾经遇到过类似的问题,问题是我正在关注最新的文档,但使用的是稍微旧一点的散景。首先尝试将散景包更新到最新版本。 好的,让我检查一下。谢谢 @IgnacioVergaraKausel 你是对的。我正在使用较旧的散景 0.12.4。更新软件包后,我解决了问题。非常感谢。 【参考方案1】:上面的评论当然是正确的。 HoverTool
的 .formatters
属性最近才在 PR #6183 中添加,这是 0.12.6
版本的一部分。您至少需要安装 Bokeh 0.12.6
或更新版本才能使用它。
Bokeh 仍在添加新功能,因此如果您没有安装最新版本的 Bokeh,请务必参考您实际安装的版本的文档,例如
http://docs.bokeh.org/en/0.12.5/
专门为版本0.12.5
提供文档。此外,您始终可以从 CDN 获取特定于您已安装版本的示例代码。同样对于版本0.12.5
有:
https://cdn.bokeh.org/bokeh/examples/examples-0.12.5.zip
【讨论】:
是的,问题是由于旧版本而发生的。更新到 0.12.6 后,问题已解决。谢谢。以上是关于Python Bokeh HoverTool 格式化程序错误:“HoverTool 的意外属性‘格式化程序’”的主要内容,如果未能解决你的问题,请参考以下文章
具有半透明背景的 Python Bokeh Hovertool