D3 数组模块
可视化或分析数据通常由一个数组来表示,JavaScript 原生支持多种数组操作方法
- 修改数组自身的方法:
array.push(value)- 追加一个或多个元素array.unshift(value)- 在数组前添加一个或多个元素array.pop()- 移除最后一个元素array.shift()- 移除第一个元素array.reverse()- 数组元素顺序翻转array.sort([compareFunction])- 排序array.splice(start, [deleteCount], [item1, item2, ...])- 添加或者移除
- 数组的存取方法:
array.concat(arg1, arg2...)- 将数组与数组或值合并array.join([glue])- 用指定的分隔符将数组元素连接起来转为一个字符串array.slice(begin, [end])- 提取切片array.indexOf(item, [from])- 找出指定元素的索引array.lastIndexOf(item, [from])- 找出指定元素的最后一个索引
- 数组的迭代方法:
array.filter(function(item, index, array))- 过滤匹配数组中所有符合条件的元素array.forEach(function(item, [index], [array]), [thisArg])- 对每个元素执行某个方法array.every(function(item, index))- 是否每个元素都符合给定的条件array.map(function(item, index, array))- 根据指定的操作对每个元素执行后返回一个新的数组array.some(function(item, index))- 是否存在符合某个条件的元素array.reduce(function(accumulator, item, index, array), [initial])- 从左到右执行 reduce 操作并返回一个值array.reduceRight(function(accumulator, item, index, array), [initial])- 从右到左执行 reduce 操作并返回一个值
基本统计方法
d3.min(iterable[, accessor])对指定的可迭代对象iterable进行自然排序并返回最小值,如果可迭代对象为空则返回undefined。可选的参数accessor是一个函数,可以用来自定义如何访问数组中的元素,对于元素是对象时,可以返回其中某个属性的值作为排序的目标。提示
与 JavaScript 内置的 Math.min(value1, value2, ...) 不同,这个方法可以忽略
undefined、null和NaN等特殊值,在可视化分析时忽略缺失数据是很有用的提示
对比是以自然排序进行的而非隐式转换为数值再对比,如对字符串
['20', '3']进行d3.min操作返回20, 而对数值[20, 3]进行d3.min操作则返回3d3.max(iterable[, accessor])返回最大值d3.extent(iterable[, accessor])使用自然排序返回指定的可迭代对象的最小值和最大值,如果可迭代对象为空则返回[undefined, undefined]d3.sum(iterable[, accessor])对指定的数值型的可迭代对象计算其元素的和,如果数组为空或非数值则返回0d3.mean(iterable[, accessor])返回平均值d3.median(iterable[, accessor])对指定的数值型的可迭代对象使用 R-7 方法 返回数组的中位数d3.quantile(iterable, p[, accessor])返回指定的数值型的可迭代对象的 p-分位数,p是[0, 1]之间的小数,如p = 0.25计算第一个四分位数,p = 0.75表示第三个四分位数,这个方法也使用 R-7 方法jsvar a = [0, 10, 30]; d3.quantile(a, 0); // 0 d3.quantile(a, 0.5); // 10 d3.quantile(a, 1); // 30 d3.quantile(a, 0.25); // 5 d3.quantile(a, 0.75); // 20 d3.quantile(a, 0.1); // 2d3.variance(iterable[, accessor])返回指定的数值型的可迭代对象的 无偏估计方差 unbiased estimator of the population variance,如果数组中包含的元素个数小于 2 则返回undefinedd3.deviation(iterable[, accessor])返回指定的数值型的可迭代对象的标准差提示
标准差定义为 方差bias-corrected variance() 的平方根