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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:34:55