“一图胜千言”这句话,在数据可视化领域体现得淋漓尽致。相比枯燥的数字和表格,一张设计得当的图表传递信息的效率要高得多。
有需求自然就有市场。近年来,数据可视化工具和平台如雨后春笋般涌现,各有各的特色。但选择变多了,头疼的问题也随之而来:面对具体的数据可视化需求,到底该怎么选?
这就不得不提一个在开发者圈子里颇有分量的名字——AntV-G2。
AntV-G2:阿里出品的图形语法实践者
AntV-G2是阿里巴巴在2018年开源的一套数据可视化引擎。它的核心是基于“可视化编码的图形语法”,简单来说,就是提供了一套规则,让你不必关心底层如何绘制图形,而是专注于如何用代码把数据变成图表。
如果你用过G2,你会发现它有几个特别突出的优点:
第一,简单易用。从数据到图表,几行代码就能搞定,门槛很低。
第二,完备的可视化编码。它以数据驱动,提供了从数据到图形属性的完整映射能力,颜色、位置、大小,你想怎么映射就怎么映射。
第三,强大的扩展能力。得益于图形语法,几乎任何你能想到的图表类型,都可以通过灵活组合来实现,创意空间很大。
作为一种基础图表库,G2的“武器库”相当丰富:折线图、柱状图、条形图、雷达图、箱体图、面积图、饼图、热力图、仪表盘……涵盖了绝大多数基础图表需求。
另外,G2底层基于WebGL/Canvas技术,因此你既可以在原生Ja vaScript环境下使用,也可以无缝集成到任何Ja vaScript框架中。社区里已经有基于G2封装的框架组件,比如对应React的BizCharts和Viser,如果你用的是Angular、React或Vue,直接使用这些封装好的组件,和自己动手封装的效果完全一致。
G2的构成:拆解可视化引擎的四梁八柱
一个完整的可视化框架,至少需要四个核心模块:
数据处理模块:负责对原始数据进行加工,比如合并、分组、排序、过滤,以及计算一些统计指标。
图形映射模块:负责把数据“翻译”成图形的视觉属性,比如把具体的数值映射成柱子的高度、线条的颜色或点的位置。
图形展示模块:决定最终用什么图形来呈现数据,是点、线还是面,这就是常说的“图形标记”。
辅助信息模块:用来解释图形含义的部分,比如坐标轴、图例、辅助文本等,它们帮助读者快速理解图表。
拆开来看,G2在这四个模块上分别做了些什么?
在数据处理上,G2的DataSet是通过“状态”来管理多个DataView(数据视图),从而实现多图联动。而DataView对应每一个具体的数据源,通过Connector接入不同类型的数据,再通过Transform进行转换或过滤,最终输出我们想要的理想数据。值得一提的是,DataSet是与G2主体分离的,按需加载,非常灵活。
在图形映射上,Scale(度量)是一个关键角色。它充当了数据空间到图形空间的转换桥梁,核心工作是将原始数据归一化到[0,1]区间。我们可以通过 chart.source 或 chart.scale('field', defs) 来定义字段,为数据起别名,或者指定显示类型,比如时间类型或分类类型。
辅助信息,就是图表上那些帮助我们理解数据的标记,比如坐标轴标签、图例说明等。
图形展示方面,Chart(图表)是一个大画布,它内部可以容纳多个View(视图),而Geom(几何标记)是我们最终看到的点、线、面等图形元素。通过对Geom的操作,我们就能让图形呈现出来。
整体来看,G2的工作流程大致是这样的:
G2的进化:从经典图形语法到交互语法
目前AntV-G2已更新到3.4版本。这次升级,不仅是版本的迭代,更像是一次“经典新生”——给传统的图形语法注入了新的灵魂,带来了“交互语法”。同时,底层渲染也实现了SVG和Canvas双引擎的自由切换。
简洁灵活的交互语法
G2把经典的图形语法扩展成了“交互语法”。一方面,它开放了220多种交互事件,你可以定制到最小粒度的图表元素交互;另一方面,它又将很多复杂的交互场景封装起来,让开发者只需一行代码就能实现原本繁琐的交互效果。
渲染引擎自由切换
从3.4版本开始,G2的绘图引擎支持SVG和Canvas双引擎。这意味着你可以根据不同的业务场景自由选择,在拾取、动画、碰撞检测等方面都做了优化,图形绘制变得更流畅,选择也更自由。
如上图所示,两种引擎在不同场景下的性能表现各有千秋。
256与58:用真实场景锤炼能力
为了检验G2的数据表达能力,团队推出了两个计划:256 plots 和 58 业务模板。
“256 plots”计划,相当于G2向d3.js和R语言社区发起的挑战赛——用G2去绘制它们社区的经典图表。通过这种极限对标,不断检验并刺激G2框架图形能力的更新。
而“58 业务模板”则更接地气。它全部源自真实的业务需求,从基础的线、柱、饼图改造开始,逐步辐射到分面图、迷你图等更复杂的场景。这个计划的目标很明确:帮助用户更快地找到理想的可视化解决方案。
DataV:让可视化触手可及的产品
AntV-G2虽然功能强大,但对于很多想要“开箱即用”、快速落地的企业来说,一个成熟的产品形态显然更有吸引力。阿里云的DataV数据可视化,恰好就承担了这个角色。
DataV是一款通过拖拽式操作就能完成大屏制作的产品。它提供了数据连接、丰富的可视化组件库、行业设计模板库、多终端适配以及发布运维等一系列功能。这意味着,即使是非技术背景的业务人员,也能快速将数据转化为直观的视觉信息。
DataV自己的图表库已经相当丰富,更关键的是,它还外接了两个重量级第三方图表库——ECharts和我们今天的主角AntV-G2。在这样强大的图表库支持下,DataV可以制作出风格多样的可视化页面,你可以随心所欲地自由搭配图表组合。

