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

Vega技术问询:如何获取嵌套group mark的相对坐标

获取Vega/Vega-Lite中Group Mark的局部点击坐标

你当前代码里的x('gm')和y('gm')获取的是该group在父坐标系中的位置,并非相对于自身的局部坐标,所以点击左上角不会返回[0, 0]。要得到目标局部坐标,需要计算鼠标点击位置与group自身左上角的偏移量:

  • 用event.x和event.y获取鼠标点击的全局绝对坐标
  • 用x('gm')和y('gm')获取group在父坐标系中的左上角绝对位置
  • 两者相减即可得到相对于该group的局部坐标

修正后的代码如下:

...
{
  "name": "gm_coords",
  "push": "outer",
  "on": [
    {
      "events": "@gm:click",
      "update": "[event.x - x('gm'), event.y - y('gm')]"
    }
  ]
}
...

如果你的group包含内边距(padding),需要进一步调整偏移量,比如减去padding的左、上值,确保点击内容区域的左上角返回[0, 0]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:20:54