You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Holoviews叠加图中仅Points响应鼠标点击操作

解决QuadMesh与Points叠加时仅让散点响应点击的问题

现有代码通过Holoviews叠加了QuadMesh网格图和Points散点图,点击时网格单元和散点都会触发高亮效果,需求是仅保留散点的Tap点击响应。

解决方案核心

显式禁用QuadMesh的交互工具,让它不响应任何鼠标交互事件,只给Points保留Tap工具。

修改后的代码

import holoviews as hv
import numpy as np
import xarray as xr
import pandas as pd
hv.extension('bokeh')

# 创建网格数据
grid_x = np.linspace(0, 5, 10)
grid_y = np.linspace(0, 5, 10)
grid_data = np.random.rand(len(grid_x), len(grid_y))
grid_data_da = xr.DataArray(grid_data, coords=[grid_x, grid_y], dims=['x', 'y'], name='data')

# 创建散点数据
point_x = np.arange(5)
point_y = np.arange(5)
point_data = pd.DataFrame(data = {'x':point_x, 'y':point_y})

# 禁用网格的所有交互工具
grid_plot = hv.QuadMesh(grid_data_da).opts(tools=[], active_tools=[])
# 给散点设置Tap工具
point_plot = hv.Points(point_data, kdims=['x', 'y']).opts(size=12, tools=['tap'])

grid_plot * point_plot

关键说明

  • 给QuadMesh的opts中传入tools=[],会清空它绑定的所有交互工具,包括默认的Tap响应;active_tools=[]确保没有激活的交互工具,彻底禁用网格的交互性。
  • 叠加后只有Points会响应Tap点击高亮,网格不会再触发任何点击交互效果。

内容的提问来源于stack exchange,提问作者hm8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:08:16