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

Highcharts问题:每个X轴分类仅显示一个dumbbell系列tooltip

问题

使用Highcharts绘制了反转(inverted)状态的哑铃图(dumbbell)展示数据范围,当同一X轴分类下存在多个数据范围时,无论鼠标悬停在何处,每个分类仅能显示其中一个范围的提示框(tooltip),重叠与非重叠范围均存在此问题。

配置代码如下:

Highcharts.chart('container', {
  "chart": {
    "type": "dumbbell",
    "inverted": true,
  },
  "legend": {
    "enabled": true
  },
  "plotOptions": {
    "series": {
      "marker": {
        "enabled": true
      }
    }
  },
  "series": [
    {
      "type": "dumbbell",
      "name": "Test",
      "data": [
        {
          "name": "Test1",
          "low": 1658882324000,
          "high": 1699267066000,
          "v": "A"
        },
        {
          "name": "Test1",
          "low": 1681067066000,
          "high": 1739067066000,
          "v": "B"
        },
        {
          "name": "Test2",
          "low": 1658882324000,
          "high": 1690267066000,
          "v": "C"
        },
        {
          "name": "Test2",
          "low": 1711067066000,
          "high": 1739067066000,
          "v": "D"
        }
      ],
      "dashStyle": "Solid",
      "lineWidth": 1,
      "label": {
        "enabled": false
      },
      "visible": true,
      "tooltip": null,
    }
  ],
  "xAxis": {
    "labels": {
      "style": {
        "fontSize": "9px"
      }
    },
    "type": "category",
    "crosshair": true
  },
  "yAxis": {
    "title": {
      "text": "Test range"
    },
    "crosshair": true,
    "labels": {
      "format": "{value:%Y%m%d}"
    }
  },
  "tooltip": {
    "pointFormat": "{point.v} - {point.low:%Y%m%d} - {point.high:%Y%m%d}",
    "enabled": true
  }
});
解决方案

问题根源是Highcharts默认的点拾取逻辑:同一X轴分类下的多个哑铃点,鼠标交互只会识别到单个点,反转图表后坐标轴的交互区域计算逻辑进一步放大了这个问题。

可以通过以下配置修复:

  • 开启tooltip共享模式:在tooltip配置中添加shared: true,鼠标悬停时会展示当前分类下所有数据点的tooltip信息:

    "tooltip": {
      "pointFormat": "{point.v} - {point.low:%Y%m%d} - {point.high:%Y%m%d}",
      "enabled": true,
      "shared": true
    }
    
  • 调整点匹配规则:在plotOptions的series中配置findNearestPointBy: 'xy',让Highcharts基于XY坐标精准匹配最近的点,而不是只根据X轴分类判断:

    "plotOptions": {
      "series": {
        "marker": {
          "enabled": true
        },
        "findNearestPointBy": "xy"
      }
    }
    
  • 拆分独立系列(可选):如果需要更独立的交互,可以将同一分类下的不同数据范围拆分为多个series,每个系列的tooltip会独立触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:44:52