G2 4.0 升级指南

    • 让开发者基于 G2 4.0 可以更快更好地封装上层图表库
    • 让交互式可视化更简单
    • 成为可视化领域的专业工具

    虽然我们对 G2 内部进行了大规模的重构工作,包括数据处理流程(引入数据更新机制),图表组件,view 渲染更新逻辑以及事件、交互机制改造等,但是为了保障用户项目能够更平滑得升级,对于 API 层的代码,我们基本没有做大的改动,对于改动之处,我们希望通过升级指南、API 文档等方式来帮助大家更好更快得进行升级。

    变更说明

    • 全面拥抱 TypeScript。
    • 全新的可视化组件:面向交互,体验优雅。
    • 强大的 View 模块:可单独使用,具备完备的可视化组件、事件,支持 View 嵌套以及自动布局。
    • 全新的交互语法。
    • 绘图引擎升级至 G 0.4 版本,支持双引擎切换。
    • 引入数据更新机制。
    • 模块化管理,提供更加灵活的扩展机制。

    API 变更

    不兼容改动

    • ❌ 接口废弃,请使用 chart.data() 接口,同时列定义请通过 chart.scale() 接口进行定义。
    • chart.coord() 接口废弃,请使用 chart.coordinate()
    • chart.guide() 接口废弃,请使用 chart.annotation(),同时不再支持 chart.guide().html()
    • chart.view() 接口废弃,请使用 chart.createView()
    • chart.interact() 接口废弃,请使用 chart.interaction()
    • chart.repaint() 接口废弃,请使用 chart.render(update: boolean) 接口。
    • G2.Global 移除,默认的主题配置可以通过以下方式获取:
    • geometry.active() 废弃,请使用 接口。
    • geometry.select() 废弃,请使用 geometry.state() 接口。
    • geometry.opacity() 废弃,请使用 geometry.color() 中使用带透明度的颜色或者 geometry.style() 接口。
    • 以下语法糖不再支持:

      • pointJitter() 废弃,请使用 point().adjust('jitter')
      • pointDodge() 废弃,请使用 point().adjust('dodge')
      • intervalStack() 废弃,请使用 interval().adjust('stack')
      • intervalSymmetric() 废弃,请使用 interval().adjust('symmetric')
      • ❌ 废弃,请使用 area().adjust('stack')
      • schemaDodge() 废弃,请使用 schema().adjust('stack')
    • Venn 以及 Violin 几何标记暂时移除,后续考虑以更好的方式支持。
    • ❌ 移除 Interval 几何标记以下两个 shape: 'top-line' 及 'liquid-fill-gauge',用户可以通过自定义 Shape 机制自己实现。
    • ❌ 移除 tail 类型的图例。
    • 内置常量重命名,一致使用小写 + '-' 命名规则,比如 shape('hollowCircle') 变更为 shape('hollow-circle')

    配置项以及接口变更

    • new Chart(cfg) 接口属性更新:

      • 4.0 代码使用示例:
    • 所有同绘图相关的配置全部定义在 style 属性中:
    • chart.tooltip() 配置项更新,同时将 G2 3.x 版本中一些针对特定图表的内置规则删除,需要用户自己通过提供的配置项进行配置,具体配置属性详见 。
    • chart.legend() 配置项更新,详见 API
    • chart.axis() 配置项更新,详见 。
    • chart.annotation() 各个类型的 annotation 配置项更新,详见 API

    详见 。

    • geometry.label() 接口更新,不再支持 html 类型的 label,详见 API