常用图库能力对比
按渲染、布局、元素、交互、扩展、算法和运行环境对比 G6Lite、G6 v5、sigma.js 与 Cytoscape.js
本页用于做能力选型,不是性能排行榜。版本核对日期为 2026-08-03:G6Lite 0.1.0-beta.22、AntV G6 5.1.1、sigma.js 3.0.3、Cytoscape.js 3.34.0。sigma.js v4 当时仍为 alpha,因此这里比较稳定版 v3。
状态含义:支持表示核心包或官方内置能力可直接使用;部分表示有明确边界;外部表示通常需要官方伴生包、生态扩展或业务实现;不支持表示当前公开 API 没有对应能力。
一句话结论
- G6Lite:轻量 WebGL 图引擎,适合大图渲染后仍需频繁状态、拾取和增量更新,并愿意使用受控扩展边界的产品。
- AntV G6 v5:完整图可视化框架,适合需要丰富元素、动画、组件、插件、多渲染器和 AntV 完整生态的应用。
- sigma.js v3:建立在 Graphology 上的 WebGL 图渲染器,适合已有坐标或独立布局链路的大规模网络浏览与探索。
- Cytoscape.js:图论模型与交互式可视化结合,适合同时需要图查询、算法、成熟扩展和 Node.js 分析的应用。
渲染、数据与布局
| 维度 | G6Lite | AntV G6 v5 | sigma.js v3 | Cytoscape.js |
|---|---|---|---|---|
| 渲染技术 | 支持:节点和边使用 WebGL 2/1,标签与 Combo 使用 Canvas 2D | 支持:基于 AntV G,可选择 Canvas、SVG、WebGL,并支持 Node.js 服务端渲染 | 支持:WebGL 渲染,核心定位是数千节点和边 | 支持:浏览器 Canvas 渲染;图模型也可无界面运行 |
| 数据模型 | 支持:GraphData 与统一 Graph API,节点、边可带业务 data 和状态 | 支持:完整 Graph 数据模型和元素模型 | 外部:以 Graphology 作为必备图模型 | 支持:内置图论模型、集合、选择器和查询 API |
| 内置布局 | 支持:14 种,含 AntV Layout 与 mindmap / indented / fishbone | 支持:10 种以上,并支持自定义布局 | 外部:通常使用 Graphology layout 包、Web Worker 或预计算坐标 | 支持:核心布局加大量布局扩展 |
| Worker / 并行布局 | 部分:常用布局可配置 worker: true;自定义布局可响应取消信号 | 支持:官方布局体系包含并行与扩展方案 | 外部:由 Graphology layout worker 或业务链路承担 | 外部:由具体布局扩展决定 |
| 高频增量更新 | 支持:节点、边、状态、显隐和相机均有批量或增量 API | 支持:完整运行时数据与元素更新 API | 支持:监听 Graphology 变更并刷新对应渲染数据 | 支持:集合式增删改、批处理与样式更新 |
布局耗时必须与纯渲染耗时分开衡量。已有坐标的 sigma.js 与重新执行 force 布局的其他方案,不能直接比较“首屏总耗时”。
元素、标签与分组
| 维度 | G6Lite | AntV G6 v5 | sigma.js v3 | Cytoscape.js |
|---|---|---|---|---|
| 节点 | 部分:内置 circle / rect,可注册基于内置图元和 overlay 的节点扩展 | 支持:丰富内置节点、自定义元素和 React 节点生态 | 部分:内置节点 Program,可注册自定义 WebGL Program | 支持:多种节点形状、映射样式和扩展 |
| 边 | 部分:内置 line / arc / polyline / cubic、箭头、路由和多重边,可注册边扩展 | 支持:丰富边类型、路由、装饰和自定义元素 | 部分:内置边 Program,可扩展 WebGL Program | 支持:多种曲线、箭头、端点和样式映射 |
| 标签 | 支持:Canvas 2D 标签、背景、旋转、宽度限制和自定义 Label Renderer | 支持:节点、边、Combo 标签及丰富样式 | 部分:节点标签为核心能力;边标签和高级排版通常依赖扩展或定制 | 支持:节点、边标签及丰富文本样式 |
| Combo / compound node | 部分:支持声明、嵌套、折叠、归组、状态和整体拖拽,当前为 beta 实验能力 | 支持:完整 Combo 元素与交互生态 | 不支持:核心渲染模型没有等价的可视分组容器 | 支持:compound nodes 是核心数据模型能力 |
| 视觉状态 | 支持:内置与自定义状态、批量状态、状态样式、查询和显隐 | 支持:元素状态、状态样式和完整交互联动 | 部分:通常通过 Graphology 属性、reducers 和应用状态表达 | 支持:类、选择器、样式和交互状态体系 |
G6Lite 的节点、边扩展会复用现有 WebGL 批处理基型;它不是 G6 v5 Canvas/SVG 场景图形状子类的直接替代。如果业务需要任意路径、复杂 DOM/React 节点或完整形状树,应优先验证 G6 v5 或 Cytoscape.js。
交互、扩展与生态
| 维度 | G6Lite | AntV G6 v5 | sigma.js v3 | Cytoscape.js |
|---|---|---|---|---|
| 内置交互 | 支持:11 个 Behavior,覆盖缩放、拖拽、选择、高亮、框选、套索、Tooltip 和边端点拖拽 | 支持:10 种以上 Behavior,覆盖范围更广 | 部分:相机、hover、click、拖拽等基础交互;复杂编辑通常由应用组合 | 支持:核心手势、选择、拖拽和事件系统 |
| 自定义交互 | 支持:注册 Behavior,生命周期为 create → init → getEvents → destroy | 支持:BaseBehavior 与注册体系 | 支持:事件、camera、reducers 和自定义应用逻辑 | 支持:事件系统、扩展与应用逻辑 |
| 扩展类别 | 支持:node、edge、label、decoration、layout、behavior、transform、plugin | 支持:元素、Behavior、Layout、Transform、Plugin 等完整体系 | 部分:自定义 Program、renderer 设置与 Graphology 生态 | 支持:布局、渲染、交互、数据导入导出等扩展生态 |
| 插件 | 部分:已有公开 Plugin 生命周期,但内置插件和社区生态仍少 | 支持:Toolbar、Minimap、Tooltip、History 等成熟内置与生态能力 | 外部:社区包和框架集成承担较多产品组件 | 支持:成熟扩展目录,覆盖布局、分析和 UI |
| 动画 | 部分:没有通用 Graph 动画编排 API;仅个别元素效果或业务扩展可实现 | 支持:元素、布局、视口和过渡动画体系 | 部分:相机动画和节点属性动画可用,复杂时间线由应用实现 | 支持:元素与视口动画 API |
| 图算法 | 不支持:只提供邻居与邻接边查询,不内置最短路、中心性等算法 | 支持:官方包集成 @antv/algorithm | 外部:使用 Graphology 标准库中的算法包 | 支持:遍历、最短路、中心性、连通性等图论 API |
运行环境与工程形态
| 维度 | G6Lite | AntV G6 v5 | sigma.js v3 | Cytoscape.js |
|---|---|---|---|---|
| 浏览器要求 | 现代 ESM、真实 DOM/Canvas、WebGL 1.0 以上 | 浏览器能力取决于所选 renderer 与构建目标 | 现代浏览器与 WebGL | 浏览器 Canvas;也可 headless |
| Node.js / SSR | 不支持渲染:只能在客户端生命周期创建 Graph | 支持:官方声明支持 Node.js 服务端渲染 | 部分:Graphology 可在 Node.js 使用,Sigma renderer 仍需要浏览器/WebGL 环境 | 支持:图模型和算法可在 Node.js headless 运行 |
| TypeScript | 包内类型,包根导出是公开契约 | TypeScript 源码和完整类型 | 包内类型 | 提供类型声明 |
| 包与生态成熟度 | 0.1.x beta,API 边界受控、生态较新 | 5.1.1 稳定版,AntV 生态完整 | 3.0.3 稳定版;v4 为 alpha | 3.34.0 稳定版,长期维护和扩展丰富 |
如何选择
优先选择 G6Lite,当以下条件同时成立:目标运行环境稳定支持 WebGL;大图渲染后的拾取、状态与批量更新是主要矛盾;circle / rect、常用边和受控扩展足以表达视觉;不依赖 SSR、完整动画和图算法。
优先选择 G6 v5,当产品需要丰富元素、完整插件与动画、多 renderer、React 节点、3D 或服务端渲染,并且更完整的能力面比最小运行时更重要。
优先选择 sigma.js,当团队已经使用 Graphology、布局坐标由后端或独立管线生成,产品核心是大规模网络的浏览、过滤和探索。
优先选择 Cytoscape.js,当图论分析、compound nodes、复杂选择器、Node.js headless 和成熟科研/网络分析扩展是核心需求。
公平验证清单
- 固定候选版本、数据、坐标、样式、标签策略、视口、DPR、浏览器和硬件。
- 将“预置坐标”和“重新布局”拆成两组,分别记录布局与纯渲染耗时。
- 除首屏外,验证拖拽、缩放、拾取、高亮、批量更新和销毁后的内存趋势。
- 使用真实业务的 Combo、标签、箭头和状态数量,避免只测无样式裸点线。
- 记录中位数、P95、样本量和误差,并保存完整适配代码与配置。