D3 数组模块

d3

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, ...) 不同,这个方法可以忽略 undefinednullNaN 等特殊值,在可视化分析时忽略缺失数据是很有用的

    提示

    对比是以自然排序进行的而非隐式转换为数值再对比,如对字符串 ['20', '3'] 进行 d3.min 操作返回 20, 而对数值 [20, 3] 进行 d3.min 操作则返回 3

  • d3.max(iterable[, accessor]) 返回最大值
  • d3.extent(iterable[, accessor]) 使用自然排序返回指定的可迭代对象的最小值和最大值,如果可迭代对象为空则返回 [undefined, undefined]
  • d3.sum(iterable[, accessor]) 对指定的数值型的可迭代对象计算其元素的和,如果数组为空或非数值则返回 0
  • d3.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 方法
    js
    var 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); // 2
  • d3.variance(iterable[, accessor]) 返回指定的数值型的可迭代对象的 无偏估计方差 unbiased estimator of the population variance,如果数组中包含的元素个数小于 2 则返回 undefined
  • d3.deviation(iterable[, accessor]) 返回指定的数值型的可迭代对象的标准差
    提示

    标准差定义为 方差bias-corrected variance() 的平方根


Copyright © 2024 Ben

Theme BlogiNote

Icons from Icônes