首页 > 解决方案 > Bokeh - 为补丁图形上的单个字形创建自定义悬停工具

问题描述

我大致按照Bokeh 文档中的 texas.py 示例创建了一个地图。我正在尝试在地图上添加一个具有自己的鼠标悬停行为的点。我添加了以下字形:

bc_glyph = Circle(x=barclays_x, y=barclays_y, size=10, line_color="black", fill_color="silver", line_width=1)

我试图用这个创建自定义 HoverTool 行为:

bc_ht = HoverTool(renderers=['bc_glyph'], tooltips=['Barclays Stadium'])

然后我打电话plot.add_glyph(bc_glyph)。运行我的脚本时,我得到以下输出:

ValueError: expected an element of either Auto or List(Instance(Renderer)), got ['bc_glyph']

错误消息的快速谷歌导致Bryan 帮助另一个用户解决类似问题,所以我重写如下:

plot_add = plot.add_glyph(bc_glyph)
bc_ht = HoverTool(renderers=['plot_add'], tooltips=['Barclays Stadium'])

但是,这会返回相同的错误:

ValueError: expected an element of either Auto or List(Instance(Renderer)), got ['plot_add']

我知道我输入了错误的输入renderers,但我不确定如何更正。任何帮助表示赞赏。

标签: pythonhoverbokehrenderer

解决方案


您仍在传递一个字符串 ,'plot_add'作为值。您需要传递实际变量:

bc_ht = HoverTool(renderers=[plot_add],           # no quote around plot_add
                  tooltips=['Barclays Stadium'])

推荐阅读