Stat

概述

用于数据计算的统计函数,例如将数据分组计数以创建直方图、生成饼图等。Stat 统计在 G2 绘图中是可选的,但通常非常有用。下表列出了目前 G2 提供的所有统计函数。

统计函数名 说明
Stat.summary 汇总统计,计算数据集合的 最大值、最小值、平均数等;
Stat.bin 封箱统计,将数据划分成一个个的区域,然后在外面嵌套汇总统计;
Stat.smooth 线性回归、非线性回归以及各种平滑插值算法,用于查找数据的规律;
Stat.density 样本估计总体的概率密度;
Stat.region 计算数值区间,误差区间等;
Stat.map 用于绘制地图的统计函数,根据地名获取经纬度信息等;
Stat.treemap 用于矩阵树图的绘制计算
link 用于计算关系图的边的坐标

语法

Stat 既可以单独使用,也可以直接参与图表绘制的过程,即直接由 G2 内部处理。

// 方式一: 单独处理
var data = [
  {x: 'red', y: 1, z: '1'},
  {x: 'red', y: 2, z: '2'},
  {x: 'red', y: 3, z: '4'},
  {x: 'blue', y: 1, z: '3'},
  {x: 'blue', y: 2, z: '1'}
];
var frame = new G2.Frame(data);
var stat = G2.Stat.summary.count('x'); // 创建统计函数,计算 x 字段的总数
stat.init(); // 初始化统计函数
var nf = stat.exec([frame])[0]; // 执行统计函数
console.log(nf.rowCount(); // result: 3
console.log(stat.dims.length); // result: 2, summary.count() 会默认产生一个新字段 ..count,用于存放统计结果
console.log(stat.dims.indexOf('..count')); // result: 1

// 方式二: 同图形语法相结合
chart.intervalStack().position(Stat.summary.percent('y')); // 用于绘制表示占比的饼图
chart.polygon().position(Stat.map.region('name', mapData)).color('value'); // 用于绘制地图
chart.polygon().position(Stat.treemap('1*value')); // 用于绘制 treemap

方法

具体的方法和使用,可详见教程 Stat 统计