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
相关产品推荐
相关产品推荐

