# 蚂蚁金服的G2可视化简要

1,454 阅读3分钟

介绍一下这个可视化工具

  • AntV 是蚂蚁金服全新一代数据可视化解决方案,致力于提供一套简单方便、专业可靠、无限可能的数据可视化最佳实践。G2 是一套基于可视化编码的图形语法,以数据驱动,具有高度的易用性和扩展性,用户无需关注各种繁琐的实现细节,一条语句即可构建出各种各样的可交互的统计图表。

使用步骤(快速上手官网上抄的)

特性如下:

  • 简单、易用
  • 完备的可视化编码
  • 强大的扩展能力

安装

  • 通过cdn引入
  • 也可以下载到本地脚本引入

<script src="https://gw.alipayobjects.com/os/lib/antv/g2/3.4.10/dist/g2.min.js"></script>

npm 安装

  • 成功安装完成之后,即可使用 import 或 require 进行引用。
  • npm install @antv/g2 --save
  • import G2 from '@antv/g2';用import方式引入该包

开始使用

  1. 创建 div 图表容器
  • 在页面的 body 部分创建一个 div,并制定必须的属性 id: <div id="c1"></div>
  1. 编写图表绘制代码
  2. 创建 div 容器后,我们就可以进行简单的图表绘制:
  • 创建 Chart 图表对象,指定图表所在的容器 ID、指定图表的宽高、边距等信息;

  • 载入图表数据源;

  • 使用图形语法进行图表的绘制;

  • 渲染图表。

具体实现代码如下

  { genre: 'Sports', sold: 275 },
  { genre: 'Strategy', sold: 115 },
  { genre: 'Action', sold: 120 },
  { genre: 'Shooter', sold: 350 },
  { genre: 'Other', sold: 150 }
]; // G2 对数据源格式的要求,仅仅是 JSON 数组,数组的每个元素是一个标准 JSON 对象。
// Step 1: 创建 Chart 对象
const chart = new G2.Chart({
  container: 'c1', // 指定图表容器 ID
  width : 600, // 指定图表宽度
  height : 300 // 指定图表高度
});
// Step 2: 载入数据源
chart.source(data);
// Step 3:创建图形语法,绘制柱状图,由 genre 和 sold 两个属性决定图形位置,genre 映射至 x 轴,sold 映射至 y 轴
chart.interval().position('genre*sold').color('genre')
// Step 4: 渲染图表
chart.render();

完成上述两步之后,保存文件并用浏览器打开,一张柱状图就绘制成功了: [具体效果图] (cdn.nlark.com/yuque/0/201…)

完整代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>柱状图</title>
    <!-- 引入 G2 文件 -->
    <script src="{{ url.g2 }}"></script>
  </head>
  <body>
    <!-- 创建图表容器 -->
    <div id="c1"></div>
    <script>
      const data = [
        { genre: 'Sports', sold: 275 },
        { genre: 'Strategy', sold: 115 },
        { genre: 'Action', sold: 120 },
        { genre: 'Shooter', sold: 350 },
        { genre: 'Other', sold: 150 }
      ]; // G2 对数据源格式的要求,仅仅是 JSON 数组,数组的每个元素是一个标准 JSON 对象。
      // Step 1: 创建 Chart 对象
      const chart = new G2.Chart({
        container: 'c1', // 指定图表容器 ID
        width : 600, // 指定图表宽度
        height : 300 // 指定图表高度
      });
      // Step 2: 载入数据源
      chart.source(data);
      // Step 3:创建图形语法,绘制柱状图,由 genre 和 sold 两个属性决定图形位置,genre 映射至 x 轴,sold 映射至 y 轴
      chart.interval().position('genre*sold').color('genre')
      // Step 4: 渲染图表
      chart.render();
    </script>
  </body>
</html>

在 React / Vue / Angular 中使用 G2

基于 AntV 技术栈还有许多优秀的项目,在 React 环境下使用 G2,我们推荐可以尝试使用 BizCharts 和 Viser-react!这两个产品都是基于 G2 的 React 版本封装,使用体验更符合 React 技术栈的习惯,他们都与 AntV 有着紧密的协同,他们很快也将同步开源和发布基于 G2 3.0 的版本。

此外,Viser 并不是针对 React 做的适配,它是对 G2 3.0 通用的抽象。通过基于 Viser 封装,现在已经支持对 React、 Angular 和 Vue 三个常用框架的深度整合,对应的是 viser-react、viser-ng 和 viser-vue。对,你都有机会用到一样的使用体验。当然,你甚至可以自己动手来封装针对任何库的版本,如果需要的话。Viser 提供了这种自定义的扩展能力,而且成本非常低。
[BizCharts 地址]: (alibaba.github.io/BizCharts/)
[Viser 地址]: (viserjs.github.io/)(Vue框架使用地址)