散景多线 p.add_tools(HoverTool(), renderers = [multiline]) 不工作

Bokeh MultiLine p.add_tools(HoverTool(), renderers = [multiline]) not working

因此,当尝试将 HoverTool 添加到绘图时,MultiLine Hover 起作用了。

但我遇到的问题是,我有另一个突出显示的单行,我不希望悬停起作用。 所以我只想将多行输入到 renderers 关键字

p.add_tools(HoverTool(tooltips = [('Name: ', '@Name'),
                                  ('Value', '@Value')],
                      renderers = [multiline]
                     )

我收到以下错误:

ValueError:应为 Auto 或 List(Instance(Renderer)) 的元素,得到 [MultiLine(id='4982e76f-7dda-4d78-b729-240c9a29bdef', ...)]

我错过了什么?

字形(例如MultiLine)更像是对绘制内容的描述。有一个单独的 GlyphRenderer 获取字形并使用它们来绘制(它实际上可以有多个版本的字形以在不同情况下使用,例如用于选择和突出显示以及抽取)。悬停工具的 renderers arg 需要 GlyphRenderer,而不是字形。

如果您使用的是bokeh.plotting,则字形渲染器由图中的方法返回:

r = plot.multi_line(...) # r is what to configure on the hover tool

如果您使用的是低级别 bokeh.models API,那么您必须已经为您的 MultiLine 手动配置了 GlyphRenderer。而是将其传递给悬停工具。