共计 2794 个字符,预计需要花费 7 分钟才能阅读完成。
Antv 蚂蚁金福提供的数据可视化解决方案,是一系列的解决方案的汇合,蕴含 G2、G6、F2、L7 以及一套残缺的图表应用和设计规范。因为有大厂反对,AntV 迭代稳固,文档和示例十分的齐全,这次因为业务需要的起因应用到了 AntV G2 数据可视化引擎,所以想记录下本人应用和学习的心得。
G2 一套面向惯例统计图表,以数据驱动的高交互可视化图形语法,具备高度的易用性和扩展性。应用 G2,你能够无需关注图表各种繁琐的实现细节,一条语句即可应用 Canvas 或 SVG 构建出各种各样的可交互的统计图表。
G2 应用
npm 装置
npm install @antv/g2 --save
上面将 G2 根底折线图 作为示例代码剖析(G2@4.0 版本):
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},
];
// 初始化, 指定容器 DOM id、高度
const chart = new Chart({
container: 'container',
autoFit: true,
height: 500,
});
// data 数据
chart.data(data);
// scale 度量配置, 生成坐标轴刻度值
chart.scale({
year: {range: [0, 1],
},
value: {
min: 0,
nice: true,
},
});
// tooltip 提示信息,是指当鼠标悬停在图形上时,以提示框的模式展现该点的数据
chart.tooltip({
showCrosshairs: true, // 展现 Tooltip 辅助线
shared: true,
});
// 几何图形 Geometry;
// 应用 line 绘制折线图
// 应用 position 通道将对应的变量映射到 x 和 y 地位空间上;// 应用 label 展现 value 值;chart.line().position('year*value').label('value');
// 应用 point 绘制点
// 应用 position 将对应的变量映射到 x 和 y 地位空间上;chart.point().position('year*value');
// 渲染
chart.render();
以上代码取自官网示例代码,Antv G2 根底折线图。会发现 G2 图表调用是通过函数链式调用来实现,绝对于 Echart,我集体感觉 G2 这样的开发流程绝对的棘手,应用办法感觉比拟舒服。(不分前端框架,应用起来都很香)。
以上只是拿折线图作为示例,大抵阐明了一下创立 G2 图表的大抵调用过程。当然 G2 也是反对其余类型的图表。上面就以我应用过的饼状图、柱状图作为例子,来梳理一下 G2 应用的大抵脉络。
G2 饼状图 / 柱状图
上面的例子中不会呈现 data 数据变量,相干的理论图表能够参考实现示例代码
## 饼状图,残缺示例参考:https://g2.antv.vision/zh/examples/pie/basic#labelline
const chart = new window.G2.Chart({
container: domID,
forceFit: true,
height: 210,
width: 230
});
chart.data(data);
// coordinate 坐标系
// theta:一种非凡的极坐标系,半径长度固定,仅仅将数据映射到角度,罕用于饼图的绘制;chart.coordinate('theta');
// tooltip 提醒
// 不展现提醒题目;chart.tooltip({showTitle: false});
// 几何图形 Geometry
// 应用 interval 绘制饼图;// 应用 position 通道 将对应的变量映射 percent 上;// 应用 color 通道 依据 item 字段的数据值进行色彩的映射;// 应用 adjust 调整数据 将同一个分类的数据值累加起来;chart.interval().position('percent').color('item').adjust('stack');
// legend 图例
// 不展现图例;
chart.legend(false);
chart.render();
几何图形 Geometry
API——interval
用于 绘制柱状图、直方图、南丁格尔玫瑰图、饼图、条形环图(玉缺图)、漏斗图 等,而 position
、color
均是 几何图形 Geometry 的通道映射规定。
图例 legend
、提醒 tooltip
、坐标系 coordinate
、数据 data
均是独自管制图表。
## 柱状图,残缺示例参考:https://g2.antv.vision/zh/examples/column/basic#basic
const chart = new window.G2.Chart({
container: domID,
autoFit: true,
height: 200,
width: 400
});
chart.data(data1);
// scale 度量
// num 是 y 轴的值,nice=true 是主动调整 y 轴刻度
chart.scale('num', {nice: true});
chart.tooltip({showMarkers: false});
// interaction 交互
// 鼠标在画布上挪动是,对应的区域呈现背景框
chart.interaction('active-region');
// 几何图形 Geometry
// 应用 interval 绘制柱状图;chart.interval().position('gydw_mc*num');
chart.render();
下面呈现新的办法 交互 interaction
用来调整图表与用户的交互展现。
几何图形 Geometry
—— line、point、interval(绘制线、点、饼 / 柱图)等数据 data
度量 scale
图例 legend
提醒 tooltip
交互 interaction
坐标系 coordinate
这些是在例子中呈现的办法,如果依照官网的介绍,以上就是 G2 图表中的基类,当然,下面只蕴含局部,还有其余基类,如 坐标轴 Axis
、滚动条 Scrollbar
… 等。
window.G2.Chart
创立图表之后,即可通过图表实例,调用相干的基类办法,对图表进行定制化,最初 render
渲染即可。对于不同的配置,只须要找到相干基类属性办法即可。只有理解了相干基类配置,对于图表的应用也会相当棘手。
参考:
Antd G2 官网文档
书栈网:G2 4.x 官网教程