首页 > 解决方案 > Bokeh MultiLine p.add_tools(HoverTool(), renderers = [multiline]) 不工作

问题描述

因此,当尝试将 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', ...)]

我错过了什么?

标签: bokehmultiline

解决方案


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

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

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

如果您使用的是低级bokeh.modelsAPI,那么您必须已经GlyphRenderer为您的MultiLine. 而是将其传递给悬停工具。


推荐阅读