AntV 调研:12K+12K+4K+2K stars 蚂蚁全家桶可视化 G2/G6/L7/G2Plot,国内生态必讲 vs Apache ECharts / Plotly / D3

27次阅读
AntV 调研:12K+12K+4K+2K stars 蚂蚁全家桶可视化 G2/G6/L7/G2Plot,国内生态必讲 vs Apache ECharts / Plotly / D3

一句话定位 :蚂蚁集团(Ant Group)出品的数据可视化全家桶,G2(图表)/ G6(图)/ L7(地理)/ G2Plot(响应式) 4 件套合计 31K+ ⭐ · MIT 全干净 · TypeScript 原生 国内做可视化技术绕不开的官方生态


写在前面

国内做 BI / 数据应用 / 业务可视化,技术选型翻来覆去就是几个名字:Apache ECharts(67K ⭐,Apache 基金会)、AntV(蚂蚁集团直营)、D3.js(110K ⭐,底层)、Plotly(17K ⭐,海外 Python 友好)。

最被低估的是 AntV——很多人以为它跟 ECharts 是同一个东西(都是国内大厂的),但其实是 两个完全不同的项目

  • Apache ECharts → 2013 年百度出品 → 2018 年捐给 Apache 基金会 → 走 Apache 治理路线
  • AntV2016 年蚂蚁集团(Ant Group)自主研发 + 持续运营至今 → 走 Ant Group 商业体路线

AntV 的独特之处

  1. 蚂蚁集团本身就是 AntV 的重度用户——支付宝 / 蚂蚁链 / 蚂蚁森林 / 余额宝 / 芝麻信用所有数据 dashboard 都跑在 AntV 上
  2. 4 件套全覆盖 ——G2(统计图表)+ G6(关系图)+ L7(地理空间)+ G2Plot(响应式), 所有可视化场景一站式
  3. Grammar of Graphics 范式——跟 D3 一脉相承的 ” 图形语法 ”,比 ECharts 的 ” 配置项 ” 更现代
  4. TypeScript 原生 + MIT 全干净——4 件套全部 TS 重写、全部 MIT 协议

10 年下来,AntV 在 GitHub 上有 124 个 public repos31K+ stars 主力 4 件套,国内做技术的 绕不开的官方生态——阿里 / 字节 / 腾讯 / 美团 / 京东 / 拼多多都在用。

本文 9 段深度拆解,从架构设计到 G2/G6/L7/G2Plot 4 件套分工,从 Grammar of Graphics 范式到 6 维横评,从实战 5 分钟到 6 大决策矩阵,一次讲透 ” 为什么 AntV 跟 ECharts 不一样、跟 D3 不一样、跟 Plotly 不一样 ”。


一、它解决什么问题

AntV 是 蚂蚁集团的数据可视化解决方案集合,核心抽象是“ 图形语法 + 场景化框架 ”

1.1 一句话定位

Visualize Data with Vitality by AI · 让数据栩栩如生

底层引擎把数据查询抽象为 view + mark + encode + transform(跟 D3 / Vega-Lite 一脉相承的 Grammar of Graphics 范式),上层封装成 4 件套应对不同场景。

1.2 基本信息(GitHub API 实时 · 2026-08-28 拉取)

字段
组织 antvis
隶属 蚂蚁集团(Ant Group) · 蚂蚁金服出品
成立 2016-05-05
总部 Hangzhou, China(杭州)
Public repos 124
官网 antv.antgroup.com
博客 antv.antgroup.com
协议 MIT ✅(4 件套全 MIT)
主语言 TypeScript(4 件套全 TS)

1.3 4 件套分工(核心抽象)

件套 Stars 主语言 场景 License
G2 12,596 TypeScript 统计图表(Grammar of Graphics 引擎) MIT ✅
G6 12,272 TypeScript 关系图 / 图分析(节点边网络) MIT ✅
L7 4,056 TypeScript 地理空间可视化(WebGL GIS) MIT ✅
G2Plot 2,653 TypeScript 响应式图表库(基于 G2 封装) MIT ✅
合计 31,577 ⭐ TS × 4 全场景可视化 MIT × 4

1.4 周边生态(124 repos 选 5 个)

Repo 用途
AntV S2 多维交叉分析表格(Excel pivot 风格)
AntV X6 流程图 / DAG 编辑器(dagre / BPMN 风格)
AntV AVA 自动化可视化推荐(” 给我这张表自动选 best chart”)
AntV Insight 自动化数据分析 + 洞察发现(” 为什么这个指标下降 ”)
AntV ChartCube 图表在线制作工具(拖拽式)

二、核心能力 1:G2 · 统计图表的 ” 图形语法 ” 引擎

2.1 Grammar of Graphics 范式

G2 是 AntV 的 核心抽象,实现了 Leland Wilkinson 的 Grammar of Graphics 理论:

import {Chart} from '@antv/g2';

const chart = new Chart({
  container: 'container',
  autoFit: true,
});

chart
  .data(data)
  .encode('x', 'genre')      // x 轴映射到 genre 字段
  .encode('y', 'sold')       // y 轴映射到 sold 字段
  .encode('color', 'genre')  // 颜色按 genre 分组
  .mark('bar')               // 图形:柱状
  .transform({type: 'sortXByY'}); // 排序

chart.render();

4 大核心概念
– ✅
Data——输入数据
– ✅
Encode——字段到视觉通道的映射(位置 / 颜色 / 大小 / 形状)
– ✅
Mark——图形元素类型(point / line / bar / area / rect)
– ✅
Transform——数据预处理(filter / sort / group / bin)

跟 ECharts 的 option 配置范式对比:

维度 ECharts G2
思维范式 “ 配置项 ”(ChartOptions) “ 图形语法 ”(Data + Encode + Mark + Transform)
声明方式 配置驱动的 JSON 链式 API + JS
扩展性 通过 option 字段扩展 通过 View / Transform 自定义语法
数据处理 需手动预处理 内置 Transform(sortXByY / binX / stack 等)
代码可读性 中(option 长) 高(链式接近自然语言)

2.2 G2 5 大核心能力

2.2.1 50+ 图表类型

  • ✅ 基础:bar / line / pie / area / scatter / column / heatmap / radar
  • ✅ 统计:histogram / density / boxplot / violin / contour
  • ✅ 时间:time series / time bar / Gantt
  • ✅ 关系:sankey / chord / tree / treemap / sunburst
  • ✅ 地图:choropleth / bubble map(配 L7)

2.2.2 交互能力

  • ✅ Cross-filter(图表联动筛选)
  • ✅ Tooltip / Highlight / Active
  • ✅ Brush(框选缩放)
  • ✅ Slider(时间轴筛选)
  • ✅ Drill-down(下钻)

2.2.3 动画

  • ✅ 进出场动画 / 状态过渡 / 路径动画
  • ✅ 基于 Web Animations API
  • ✅ 支持 mark.animate() 自定义

2.2.4 主题

  • ✅ 内置 light / dark / classic 3 套
  • ✅ 自定义 theme tokens
  • ✅ 按业务场景定制色板

2.2.5 扩展性

  • ✅ 自定义 Mark
  • ✅ 自定义 Transform
  • ✅ 自定义 Interaction
  • ✅ 自定义 Coordinate(极坐标 / 螺旋坐标)

2.3 G2 vs G2Plot:抽象层 vs 业务层

关键区分

件套 定位 适用
G2(12,596 ⭐) 图形语法引擎 想自定义可视化语法 / 做 BI 产品底层
G2Plot(2,653 ⭐) 响应式业务图表库 业务页面快速集成图表

选 G2:你要做 ”BI 产品 ”(如 Metabase/Superset 替代品),需要完整控制语法
选 G2Plot:你要在业务页面快速集成柱状图 / 折线图,G2Plot 是开箱即用的 wrapper


三、核心能力 2:G6 · 关系图 / 图分析

3.1 一句话定位

A Graph Visualization Framework in JavaScript

关系图场景
– ✅ 社交网络(关注关系图)
– ✅ 知识图谱(实体关系)
– ✅ 网络拓扑(设备连接)
– ✅ 风控图谱(人物关系链)
– ✅ 血缘分析(数据 lineage)
– ✅ 组织架构图

3.2 核心能力

能力 说明
12+ 布局算法 force / dagre / circular / fruchterman / mds / radial / d3-force / concentric
10+ 元素类型 node / edge / combo / label / arrow / marker
交互能力 drag / zoom / pan / hover / select / focus
性能 WebGL 渲染(g6-pixer)支持 10 万节点
动画 内置 + 自定义 transition

3.3 实战场景

数据血缘可视化(dbt lineage / Airflow DAG):

import {Graph} from '@antv/g6';

const graph = new Graph({
  container: 'container',
  layout: {type: 'dagre', rankdir: 'LR'},
  data: {
    nodes: [{ id: 'raw.orders', label: 'raw.orders'},
      {id: 'stg.orders', label: 'stg.orders'},
      {id: 'mart.revenue', label: 'mart.revenue'},
    ],
    edges: [{ source: 'raw.orders', target: 'stg.orders'},
      {source: 'stg.orders', target: 'mart.revenue'},
    ],
  },
});
graph.render();

30 行代码搞定数据血缘图,对比 React Flow / Cytoscape.js 优势在 内置多种布局算法 + 中文文档 + Ant Group 出品稳定


四、核心能力 3:L7 · 地理空间可视化

4.1 一句话定位

Large-scale WebGL-powered Geospatial Data Visualization analysis engine

地理场景
– ✅ 业务地图(门店分布 / 用户密度)
– ✅ 物流路径(轨迹 / 路径规划)
– ✅ GIS 应用(地形 / 行政区划)
– ✅ 实时数据(IoT 设备位置 / 车流)
– ✅ 区域统计(choropleth 热力图)

4.2 三大底图集成

L7 内置三大地图底图,国内 / 海外全覆盖

底图 厂商 适用
高德地图(Amap) 高德 国内业务(首选)
Mapbox Mapbox 海外 / 全球业务
Google Maps Google 海外(部分国家)

4.3 实战场景

import {Scene} from '@antv/l7';
import {GaodeMap} from '@antv/l7-maps';

const scene = new Scene({
  map: new GaodeMap({
    style: 'light',
    center: [120.15, 30.28], // 杭州
    zoom: 10,
  }),
});

scene.addPointLayer()
  .source(pointData) // {lng, lat, value}
  .shape('circle')
  .size('value', [4, 20])
  .color('value', ['#f7fbff', '#08306b'])
  .render();

20 行代码做出 杭州门店密度热力图 。对比 deck.gl / Mapbox GL JS 优势在 国内地图原生 + Ant Group 出品稳定


五、对比主流可视化库(6 维横评)

5.1 跟 4 个最常被拿来做对比的项目

维度 AntV Apache ECharts Plotly D3.js
出身 Ant Group(蚂蚁) Apache Foundation Plotly Inc. Mike Bostock(个人 → Observable)
Stars(G2 主仓) 12,596 67,081(ECharts 主仓) 17,500(Plotly.py) 110,000+
License MIT ✅ Apache-2.0 ✅ MIT ✅ ISC ✅
主语言 TypeScript TypeScript(v5+) Python + JS JavaScript(vanilla)
范式 Grammar of Graphics 配置项 option declarative JSON SVG 操作
学习曲线 中(语法学习) 低(配置即可) 陡(底层)
业务封装 G2Plot(响应式) 内置 chart type 内置 需自己包
关系图 G6(独立 12K ⭐) 内置 graph 内置 需自己写
地理 L7(独立 4K ⭐) 内置 geo + BaiduMap/AMap 内置 mapbox 需自己写
大数据性能 G2 v5 优化 + G6 WebGL Canvas + SVG 双引擎 WebGL SVG 性能差
国内生态 🟢 蚂蚁系 🟢 Apache 中国社区 🟡 海外为主 🟡 海外为主
中文文档 🟢 完善 🟢 完善 🟡 翻译版 🟡 部分翻译

5.2 6 大核心差异

差异 1:AntV 走 Ant Group 直营,ECharts 走 Apache 基金会

维度 AntV Apache ECharts
出品方 蚂蚁集团(仍在持续投入) Apache 基金会(捐赠后由社区运营)
决策速度 🟢 (内部决策) 🟡 慢(社区投票)
商业可用 ✅ 蚂蚁云可直接托管 ✅ 完全中立
长期维护 ✅ Ant Group 持续投入 ✅ Apache 治理(中立)
生态联动 🟢 支付宝 / 蚂蚁链 / 余额宝全套 🟡 主要靠社区贡献

判断 :商业项目想用 国内大厂生态 → AntV;想要 完全中立 → ECharts。

差异 2:AntV 4 件套分工 vs ECharts 单体全家桶

维度 AntV 4 件套 ECharts 单体
包体积(按需引入) 🟢 (G2Plot 200KB) 🟡 大(ECharts 全量 ~1MB)
学习曲线 🟡 多套 API 🟢 统一 option
深度定制 🟢 每件套都深入 🟡 option 字段有限
一致性 🟡 各件套 API 风格不同 🟢 统一

差异 3:AntV Grammar of Graphics vs ECharts 配置范式

G2 写法(图形语法):

chart.data(data).encode('x', 'genre').encode('y', 'sold').mark('bar');

ECharts 写法(配置项):

chart.setOption({xAxis: { type: 'category', data: genres},
  yAxis: {type: 'value'},
  series: [{type: 'bar', data: solds}],
});

判断
– ✅ 复杂数据 + 需要自定义 transform →
G2 更现代

– ✅ 标准图表 + 快速集成 →
ECharts 易上手

差异 4:关系图 G6 vs ECharts Graph

维度 AntV G6 ECharts Graph
Stars 12,272 ⭐ 内置
布局算法 12+(force / dagre / circular / mds / radial) 5+(force / circular)
节点数 🟢 10 万(WebGL) 🟡 万级
API 范式 完整图分析框架 配置项

判断 :要 正经做关系图 / 血缘分析 → G6;要 简单展示关系 → ECharts graph。

差异 5:地理 L7 vs ECharts Geo

维度 AntV L7 ECharts Geo
Stars 4,056 ⭐ 内置
渲染引擎 WebGL Canvas + SVG
底图集成 高德 / Mapbox / Google 高德 / Baidu / 百度
性能 🟢 大数据流畅 🟡 中等数据
3D 🟢 L7 原生支持 🟡 ECharts GL 插件

差异 6:生态与公司背书

维度 AntV ECharts
大厂使用 阿里 / 蚂蚁 / 字节 / 京东 / 拼多多 / 美团 / 平安 阿里 / 腾讯 / 字节 / 美团 / 京东
商业案例 🟢 蚂蚁全套业务 🟡 主要社区案例
招聘市场 🟡 蚂蚁系更认 🟢 更广(Apache 通用)
阿里系背书 蚂蚁直营 ✅ 阿里捐赠

六、实战:5 分钟跑通 G2 柱状图

6.1 Step 1 · 安装(1 分钟)

# 新项目
npm init -y
npm install @antv/g2

6.2 Step 2 · HTML 容器 + 数据(2 分钟)

<!DOCTYPE html>
<html>
<head>
  <title>AntV G2 Demo</title>
</head>
<body>
  <div id="container"></div>
  <script type="module" src="./main.js"></script>
</body>
</html>
// main.js
import {Chart} from '@antv/g2';

const data = [{ genre: 'Sports', sold: 275},
  {genre: 'Strategy', sold: 115},
  {genre: 'Action', sold: 120},
  {genre: 'Shooter', sold: 350},
  {genre: 'Other', sold: 150},
];

const chart = new Chart({
  container: 'container',
  autoFit: true,
});

chart
  .data(data)
  .encode('x', 'genre')
  .encode('y', 'sold')
  .encode('color', 'genre')
  .mark('bar')
  .transform({type: 'sortXByY', reverse: true});

chart.render();

6.3 Step 3 · 启动(30 秒)

npx vite # 或任何静态服务器
# 浏览器 http://localhost:5173

5 分钟看到柱状图

6.4 进阶:30 分钟做出 G2 + G6 联动

数据血缘 + 统计图联动:

// 同一个 Chart 实例里画 2 个 view
chart
  .data(data)
  .encode('x', 'date')
  .encode('y', 'revenue')
  .mark('line')
  .view()
  .data(lineageData)
  .mark('point')
  .transform({type: 'dagre'});

完整链路在 AntV 官方教程里都有,跟 Superset / Metabase 集成的 demo 也都开源。


七、风险与坑(6 条)

7.1 中文文档优先 vs 英文文档 ⚠️

AntV 的 文档 / 教程 / API reference 主要中文 ——英文翻译 部分覆盖

  • ✅ 核心 API + 基础教程 → 中英双语
  • ⚠️ 进阶教程 / 案例 → 中文为主
  • ⚠️ 社区 issue → 中文为主

影响:海外团队 / 英文项目用 AntV 需要做内部翻译。

7.2 蚂蚁系生态绑定 ⚠️

AntV 跟蚂蚁集团其他项目 深度绑定

  • ✅ 跟 Ant Design(antd)样式联动
  • ✅ 跟支付宝小程序有原生适配
  • ⚠️ 跟 React / Vue 的 wrapper 偏 antd 风格
  • ⚠️ 想脱离 antd 用独立样式 → 需自己写 theme tokens

7.3 v4 → v5 升级 breaking change ⚠️

G2 从 v4 到 v5 是 完全重写(从基于 G2 引擎改成基于 G 渲染引擎):

  • ✅ 性能大幅提升(WebGL + Canvas 双引擎)
  • ⚠️ API 风格完全不同(v4 是 G2Plot 风格,v5 是新语法)
  • ⚠️ 旧代码迁移成本高
  • ⚠️ 教程 80% 是 v5,少量 v4 历史文档

新项目 :直接 v5
老项目:评估迁移成本

7.4 G2 vs G2Plot 选择纠结

很多团队搞不清 G2(语法引擎)和 G2Plot(响应式封装)的区别:

  • ❌ 用了 G2 来做简单柱状图 → 杀鸡用牛刀
  • ❌ 用了 G2Plot 来做高度定制 → 不够灵活
  • ✅ 简单场景用 G2Plot(开箱即用)
  • ✅ 复杂场景用 G2(深度定制)

7.5 G6 性能 vs 易用性 trade-off

G6 v5 引入 WebGL 渲染(10 万节点),但:

  • ⚠️ WebGL 调试比 Canvas 难
  • ⚠️ 简单 demo 看不出 WebGL 优势
  • ✅ 真正大数据血缘图 → G6 v5 是国内首选

7.6 L7 商业地图授权 ⚠️

L7 默认接高德地图,生产环境需要高德开发者 key + 商业授权

  • ⚠️ 个人开发者 → 免费额度够 demo
  • ⚠️ 商业项目 → 需购买高德企业 key
  • ⚠️ 海外项目 → 切 Mapbox 也需付费 key

影响:成本不可忽略,特别是 ToC 高并发项目。


八、总结

8.1 3 个最值得用 AntV 的理由

  1. 蚂蚁集团直营,国内生态最强 ——支付宝 / 余额宝 / 蚂蚁链全套业务在用, 招人 + 维护 + 商业背书都比 ECharts 更 ” 国内大厂 ”
  2. 4 件套分工覆盖全场景 ——G2(图表)+ G6(图)+ L7(地图)+ G2Plot(响应式) 一个团队解决所有可视化,不用堆 4 个不同库的依赖
  3. MIT + TypeScript 全干净——4 件套全 MIT 商用零风险,TS 原生跟现代前端栈无缝集成

8.2 3 个不要用 AntV 的场景

  1. 海外项目(高德地图授权 + 中文文档)→ Plotly / Observable Plot
  2. 只用一张柱状图 → G2Plot 都嫌重,直接 Apache ECharts
  3. 从 D3 迁移老项目 → 继续用 D3,重写成本不值

8.3 一句话决策

国内业务 + 中大型项目 + 多场景可视化 → AntV 4 件套是首选
简单业务图表 + 团队熟悉 ECharts → ECharts
海外项目 + Python 友好 → Plotly
底层自定义 → D3.js


📎 WordPress 链接


参考

  1. AntV 官网 — Visualize Data with Vitality by AI
  2. antvis/G2 GitHub — 12,596 ⭐ / MIT / TypeScript
  3. antvis/G6 GitHub — 12,272 ⭐ / 关系图
  4. antvis/L7 GitHub — 4,056 ⭐ / 地理空间
  5. antvis/G2Plot GitHub — 2,653 ⭐ / 响应式图表
  6. Apache ECharts 调研(67K ⭐) — 同类国内竞品
  7. Plotly 官方 — 海外 Python 友好竞品
  8. D3.js 官方 — 底层可视化(110K+ ⭐)
  9. Vega-Lite 官方 — Grammar of Graphics 范式参考
  10. Apache ECharts vs AntV 对比 — 知乎讨论
  11. AntV AVA — 自动化可视化推荐
  12. AntV Insight — 自动化数据分析
正文完