Bokeh使用HoverTool时仅展示单个悬浮提示框的问题咨询
解决方案
方法1:修正现有CSS写法
你代码中的CSS存在两处问题:一是将选择器中的div误写为dif,二是选择器适配的是旧版Bokeh的DOM结构,适配Bokeh 2.3.3的正确CSS如下:
div.bk-tooltip > div.bk-tooltip-row:not(:first-child) { display: none !important; }
替换掉你原有tooltips里的style段即可生效。
方法2:直接通过Bokeh接口配置(更稳定,无需自定义CSS)
Bokeh 2.3.3的HoverTool原生支持单条提示展示,仅需在实例化时添加两个参数即可,完整示例代码如下:
from bokeh.plotting import figure, show from bokeh.models import HoverTool, Range1d custom_hover = HoverTool( tooltips=""" <b>X: </b> @x <br> <b>Y: </b> @y """, point_policy="first", # 重叠时仅取第一个匹配的元素 show_all=False # 关闭多数据同时展示 ) p = figure(tools=[custom_hover]) p.circle(x=[0.75,0.75,1.25,1.25], y=[0.75,1.25,0.75,1.25], size=230, color='red', fill_alpha=0.2) p.y_range = Range1d(0,2) p.x_range = Range1d(0,2) show(p)
两种方法都可以实现重叠数据点仅展示单条tooltip的需求,第二种方法不需要依赖DOM结构,Bokeh版本升级时兼容性更好。
内容的提问来源于stack exchange,提问作者cmfrantz
相关产品推荐
相关产品推荐

