2020 年 11 月 22 日 AntV 开源日,G6 发布了 4.0 版本[1]。时隔 3 个多月,陪伴 G6 一起成长的那帮小伙伴[2] 依旧在为 G6 的发展贡献着力量。G6 4.2.0 采用多包管理,在提升维护性和扩展性的基础上,G6 的能力更开放,生态建设也有了进一步提升。新变化主要有:全新的架构升级,完善的生态建设,极致的体验优化。
🚀 全新的架构升级
G6 从 3.0 版本迭代到 4.0 版本,在功能特性逐步完善的情况下,代码量也在急剧增加。为解决维护性、可扩展性、包体积的膨胀以及模块耦合等问题,我们将 G6 各能力拆包,改造后的架构图如下:
采用多包管理以后,G6 的能力更开放了,我们将布局和算法分别拆成了 antv/layout
和 antv/algorithm
[4] 两个独立的包,提供给 X6、butterfly 等开源图可视化库使用,让其他库也具备和 G6 一样的图布局和算法能力。我们也将 G6 中的 issues 分类整理,将近半年的迭代需求对社区公开,通过 《致G6 用户的一封信》,寻求社区贡献者!
🎉 完善的生态建设
G6 4.2.0 版本带来了完善的生态:针对React开发者,我们支持使用组件方式自定义节点,同时与 React 技术栈深度融合,推出了全新的 Graphin2.0 版本,用户可以开箱即用;针对移动端需求,我们推出了 G6Mobile
,覆盖 H5、小程序等多端场景;针对 Notebook 用户,我们推出了 ipygraphin
,用户可以很方便地在 Jupyter Notebook 中使用图可视化的能力。
G6 + React: Graphin 2.0
G6 4.2.0 版本带来了一个重要生态产品:Graphin 2.0。它深度整合 G6 图可视分析能力,为 React 用户带来了三个主要变化:开箱即用的功能,全新架构升级,集成解决方案。更多内容请参考:🎉 Graphin 2.0 来啦。
G6 + 移动端:H5/小程序
GitHub:https://github.com/antvis/G6/tree/mobile/packages/mobile
针对日益旺盛的移动端需求,我们推出了 G6Mobile
,覆盖 H5、小程序等多端场景,这也许可以让 G6 成为世界上第一款支持小程序的图可视化引擎。
目前只支持支付宝小程序,在不久的将来,我们还会支持微信小程序及其他的小程序。更多内容请参考:如何使用 G6 在小程序里面绘制关系图。
G6 + Notebook: ipygraphin
GitHub:https://github.com/alibaba/GraphScope/tree/main/python/jupyter/ipygraphin
我们和阿里巴巴达摩院图计算 GraphScope[6] 团队合作,为其开发了 G6/Graphin 插件 ipygraphin,让用户可以很方便地在 JupyterLab / Jupyter NoteBook 中使用图可视化的能力。
🎨 持续的体验优化
更简单的节点定义
GitHub:https://github.com/antvis/G6/tree/master/packages/react-node
G6 4.2.0 版本推出了@antv/g6-react-node
, 解决了自定义节点门槛高的问题。用户借助该包,可使用开发 React 组件的方式来自定义 G6 的节点。@antv/g6-react-node
支持类似于 flex 布局的自动布局,对事件定义精细到了图形级别,并且可以像 React 组件一样,支持图形元素的组件级复用,让开发图元素更加便捷。我们相信:只要你会使用 React,你就能自定义 G6 节点。更多内容请参考:如何使用 React 在 G6 里面优雅地定制节点。
更丰富的图算法
图算法是图可视分析的重要工具,G6 团队持续建设 @antv/algorithm
[7] ,添加更多基础的、实用的图算法,帮助用户更好地搭建图分析应用。本次 G6 4.2.0 版本更新,我们实现了自动聚类[8](包括标签传播和 LOUVAIN 社区计算算法)和模式匹配算法[9]。同时,感谢 GitHub 社区同学 @zuiidea 的共建,@antv/algorithm 支持了在 web-worker 中执行算法,避免较复杂的计算阻塞页面。
更易用的节点分组
节点分组 Combo 是大家最常用的功能之一,对 Combo 的诉求也在不断增加。G6 4.2.0 版本我们支持了创建固定大小的 Combo、优化了「层次布局中使用 Combo」[10]的问题。
其他小优化
G6 4.2.0 支持绘制带有文字或图片水印的图,保护您的创作版权。
时间轴更加自由有爱了,支持自由配置花里胡哨的样式,支持边的时序数据过滤:
致谢
感谢一直支持、使用并关注 G6 的伙伴们,特别感谢参与 G6 共建的社区同学。目前 G6 仍有许多不足,但是我们相信通过持续的迭代,以及越来越多热爱图可视分析方向同学的共同努力,我们会变得越来越好。欢迎关注和 star 我们的 GitHub:
附录
- [1] G6 发布了 4.0 版本:https://www.yuque.com/antv/g6-blog/nnmqbk
- [2] 陪伴 G6 一起成长的那帮小伙伴:https://www.yuque.com/antv/g6-blog/lbtuyl#BQQUR
- [3] antv/layout :https://github.com/antvis/layout
- [4] antv/algorithm :https://github.com/antvis/algorithm
- [5] 致 G6 用户的一封信,寻求社区贡献者!:https://github.com/antvis/G6/issues/2535
- [6] GraphScope:https://github.com/alibaba/GraphScope
- [7] antv/algorithm:https://github.com/antvis/algorithm
- [8] 自动聚类 Demo: https://g6.antv.vision/zh/examples/algorithm/algoDemos/#louvain
- [9] 模式匹配算法:https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.458.9673&rep=rep1&type=pdf
- [10] 层次布局中使用 Combo:https://g6.antv.vision/zh/examples/net/dagreFlow#dagreCombo