Bokeh升级至最新版后移动端HoverTool失效问题求助
解决Bokeh Server升级后移动端HoverTool失效(图表被当作图片选中)的问题
方案1:禁用图表区域的元素选中行为
Bokeh新版本在移动端可能默认开启了画布元素的选中功能,导致触摸操作优先触发选中而非HoverTool。可以通过添加自定义CSS禁用该行为:
from bokeh.models import Div from bokeh.plotting import curdoc # 定义禁用选中的CSS样式 custom_css = """ .bk-canvas-wrapper { user-select: none; -webkit-user-select: none; /* 适配iOS/Android的webkit浏览器 */ -moz-user-select: none; -ms-user-select: none; } """ # 将样式添加到文档中 style_div = Div(text=f"<style>{custom_css}</style>") curdoc().add_root(style_div)
这段代码会阻止浏览器将图表画布识别为可选中元素,让触摸操作正常触发HoverTool。
方案2:调整HoverTool的触摸事件配置
部分新版本的Bokeh调整了触摸事件的优先级,修改HoverTool的以下属性可以修复触发逻辑:
from bokeh.models import HoverTool hover_tool = HoverTool( # 保留你原有的tooltips、renderers等配置 toggleable=False, # 防止触摸时误触发工具切换 modal=False # 允许同时响应触摸和悬停事件 ) # 将工具添加到图表 your_plot.add_tools(hover_tool)
方案3:临时回退至Bokeh 3.6版本
如果上述方案都无法解决,且业务允许,可临时回退到之前的稳定版本:
pip install bokeh==3.6.0
后续可以关注Bokeh官方的更新,待该问题修复后再升级。
内容的提问来源于stack exchange,提问作者user3052581
相关产品推荐
相关产品推荐

