Plotly如何隐藏hoverlabel且在Dash回调中保留hoverData功能
解决方案
核心原理
你之前的操作存在两个问题:
hoverinfo、hovertemplate是**trace(数据层)**的配置参数,不属于布局配置,放在update_layout里才会提示非法参数- 你将
hovermode=False相当于全局禁用了所有hover事件监听,自然无法触发回调获取hoverData
可行实现方案
不需要修改全局hover配置,只需要将对应trace的hoverlabel透明度设为0,视觉上完全隐藏悬浮标签,同时hover事件会正常触发,不影响hoverData的获取。
修改后的代码如下:
import plotly.express as px from PIL import Image import numpy as np ss_rgb = np.array(Image.open('test.png')) fig = px.imshow(ss_rgb) fig.update_xaxes(visible=False) fig.update_yaxes(visible=False) fig.update_layout( dragmode=False # 删除hovermode=False配置,保留默认hover事件监听 ) # 新增:隐藏所有trace的hoverlabel,不影响hover事件触发 fig.update_traces(hoverlabel_opacity=0)
可选补充方案
如果你需要完全清空悬浮标签内容而非仅隐藏,也可以在update_traces中配置空的hovertemplate,配合使用效果更稳妥:
fig.update_traces( hoverlabel_opacity=0, hovertemplate="" )
内容的提问来源于stack exchange,提问作者acciolurker
相关产品推荐
相关产品推荐

