G2 如何绘制一个常见的折柱饼图

发布于 2024-10-12 18:45:29 字数 2768 浏览 12 评论 0

折柱饼图系列是我们最常用的几个图表,在 BI 数据分析产品了,折柱饼系列图表的占比可以超过 80%。学会使用 G2 绘制这几个图,基本了解 G2 的使用,也可以满足很多的业务需求了。

在做图之前,我们可以先了解一下 G2 是什么?

G2 是一套基于图形语法理论的可视化底层引擎,以数据驱动,提供图形语法与交互语法,具有高度的易用性和扩展性。使用 G2,你可以无需关注图表各种繁琐的实现细节,一条语句即可使用 Canvas 或 SVG 构建出各种各样的可交互的统计图表。

准备阶段

安装

使用之前我们需要安装一下 G2。可以使用 npm install,也可以直接使用 script 标签去引入远程的 CDN 资源。

$ npm install @antv/g2 --save
<!-- 引入在线资源,可以选择你需要的 g2 版本 -->
<script src="https://unpkg.com/@antv/g2"></script>

准备一个 DOM 节点

<div id="container"></div>

绘制图形

折线图

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

const data = [
  { year: '1991', value: 3 },
  { year: '1992', value: 4 },
  { year: '1993', value: 3.5 },
  { year: '1994', value: 5 },
  { year: '1995', value: 4.9 },
  { year: '1996', value: 6 },
  { year: '1997', value: 7 },
  { year: '1998', value: 9 },
  { year: '1999', value: 13 },
];

// 1. 新建图表实例
const chart = new Chart({
  container: 'container',
  autoFit: true,
  height: 500,
});

// 2. 设置数据
chart.data(data);

// 3. 折线图
chart.line().position('year*value').label('value');

// 4. 渲染
chart.render();

g2-line

柱形图

在折线图的代码示例基础上,做一下的代码变更。

- // 3. 折线图
- chart.line().position('year*value').label('value');
+ // 3. 柱形图
+ chart.interval().position('year*value').label('value');

column

饼图

在柱形图的基础上,做一下代码变更。

- // 3. 柱形图
- chart.interval().position('year*value').label('value');
+ // 设置坐标系
+ chart.coordinate('theta');
+ 
+ // 3. 饼图是由柱图经过坐标系变化而来的
+ chart.interval()
+   .position('value')
+   .adjust('stack')
+   .color('year')

pie

总结一下

从这三个图的例子可以看出,使用 G2 绘制折柱饼的代码差异很小,为什么?**因为 G2 基于图形语法,图形语法通过几个互相正交的概念,就可以表达不同的可视化图表。**这些可视化概念主要有:

  • scale 比例尺
  • coordinate 坐标系
  • geometry / marker 图形

更多图表的绘制以及教程文档,可以参考 G2 官网的 图表示例教程

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
22 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文