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

Apex Charts同步图表:如何禁用缺失值处的X轴十字准线?

解决Apex Charts同步图表中Null值位置显示十字准线的问题

针对同步图表里X轴对应位置所有数据均为null时仍显示十字准线的问题,可通过监听鼠标移动事件,动态判断当前位置是否存在有效数据,进而控制十字准线的显示状态,同时兼容图例切换场景。

实现步骤:

  1. 初始化时隐藏十字准线
    在X轴配置中默认隐藏crosshair,后续根据数据状态动态切换:
xaxis: {
  crosshair: {
    show: false
  }
}
  1. 添加鼠标移动事件监听
    通过chart.events.mousemove事件,获取当前鼠标对应的X轴索引,遍历所有可见系列的数据,判断是否存在非null值,再更新crosshair的显示状态:
chart: {
  events: {
    mousemove: function(event, chartCtx, config) {
      if (!config.globals.xaxis) return;
      const xIndex = config.globals.xaxis.selectedPointIndex;
      let hasValidData = false;

      // 仅检查当前可见的系列数据
      chartCtx.w.config.series.forEach(series => {
        const isSeriesVisible = chartCtx.series[series.name]?.visible !== false;
        const pointValue = series.data[xIndex];
        if (isSeriesVisible && pointValue !== null && pointValue !== undefined) {
          hasValidData = true;
        }
      });

      // 动态更新十字准线显示状态
      chartCtx.updateOptions({
        xaxis: {
          crosshair: {
            show: hasValidData
          }
        }
      }, false, false);
    }
  }
}

关键说明:

  • 遍历数据时仅检查当前可见的系列,确保图例切换后逻辑依然准确;
  • 使用updateOptions的后两个参数设为false,避免触发图表重绘动画,提升交互流畅度;
  • 若使用同步图表(多图表联动),需在每个图表实例中添加相同的事件监听逻辑,保证联动时十字准线状态一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:16:03