如何在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的
elementsFromPointAPI,它仅返回鼠标光标下的所有元素,而非该区域内的全部重叠元素; - 使用
collideForce,但会导致数据点位置偏移,且因嵌套数据数组的问题未能成功实现。
请问D3.js是否提供了针对此类问题的解决方案,还是需要完全自定义实现?
内容的提问来源于stack exchange,提问作者letmejustfixthat
相关产品推荐
相关产品推荐

