AmCharts 5中如何获取鼠标悬停时图表数据点的坐标?
解决方法
在amCharts 5的pointerover事件中,ev.point返回的是鼠标的像素坐标,要获取数据点的实际数值,可通过以下两种方式:
方式1:通过dataItem获取处理后的数值
series.events.on("pointerover", function(ev) { const dataItem = ev.item.dataItem; // 获取X轴对应字段(valueXField: "number")的数值 const xValue = dataItem.get("valueX"); // 获取Y轴对应字段(valueYField: "height")的数值 const yValue = dataItem.get("valueY"); console.log("数据点坐标:", xValue, yValue); });
方式2:直接读取原始数据
如果需要的是传入图表的原始数据,可通过dataContext直接访问字段:
series.events.on("pointerover", function(ev) { const rawData = ev.item.dataContext; const xValue = rawData.number; const yValue = rawData.height; console.log("数据点坐标:", xValue, yValue); });
补充说明
ev.item指当前鼠标悬停的系列元素(如平滑线上的对应数据点、子弹标记)dataItem是amCharts内部处理后的数据对象,通过get("valueX")/get("valueY")可直接获取对应轴的数值dataContext是你最初传入图表的原始数据对象,可直接访问定义的字段(如number、height)
内容的提问来源于stack exchange,提问作者alex37
相关产品推荐
相关产品推荐

