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

多系列AG-Chart的sync.nodeInteraction同步交互功能失效求助

多数据系列图表下sync.nodeInteraction失效的解决方案

这种多系列场景下sync.nodeInteraction失效的情况确实有开发者遇到过,核心问题在于开启tooltip.shared = true时,多系列图表的交互事件逻辑和单系列存在差异,默认同步机制无法正确匹配跨图表的系列节点。

针对你的场景(两个图表系列数据完全一致),提供两种可行解决思路:

  • 自定义交互同步逻辑:放弃依赖内置的sync.nodeInteraction,手动监听图表的pointermove事件,获取当前悬浮的数据点信息后,在另一个图表中触发对应tooltip的显示:

    // 监听第一个图表的pointermove事件
    chart1.on('pointermove', (e) => {
      const activePoint = e.target.dataPoint;
      if (activePoint) {
        // 在第二个图表中匹配同x轴值、同系列的数据点
        const targetSeries = chart2.series.find(series => series.name === activePoint.series.name);
        const targetPoint = targetSeries?.data.find(point => point.x === activePoint.x);
        if (targetPoint) {
          chart2.tooltip.refresh([targetPoint]);
        }
      }
    });
    
  • 修改同步匹配规则:若使用的是支持自定义同步规则的图表库,可指定基于x轴值进行节点匹配,替代默认的索引匹配逻辑:

    Highcharts.sync('nodeInteraction', {
      matchBy: 'x' // 基于x轴值跨图表匹配节点
    });
    

单系列场景正常、多系列失效的本质原因是:默认同步逻辑按节点在系列中的索引匹配,多系列下同一x轴值对应多个不同系列的节点,索引匹配逻辑会出现错位,导致tooltip无法同步显示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:32:37