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

如何在D3.js时间线图表中实现类Leaflet式重叠元素分组?

D3.js 实现Leaflet风格的时间线重叠事件分组效果?

我正在用D3.js创建事件时间线图表,用来可视化时间线上的事件,核心数据结构如下:

interface GraphData {
  from: Date;
  until: Date;
  groups: GraphGroup[];
}

interface GraphGroup{
  events: GraphEvent[];
}

interface Event {
  time: Date;
}

事件还包含category、severity等扩展属性,附随机数据生成的时间线示例图:
![事件时间线示例图]

想请教是否可以实现类似Leaflet地图风格的重叠数据分组效果,示例如下:
![Leaflet风格重叠分组示例图]

我已经尝试过两种方案,但都不符合需求:

  • 使用非D3.js的elementsFromPoint API,它仅返回鼠标光标下的所有元素,而非该区域内的全部重叠元素;
  • 使用collideForce,但会导致数据点位置偏移,且因嵌套数据数组的问题未能成功实现。

请问D3.js是否提供了针对此类问题的解决方案,还是需要完全自定义实现?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:47:10