D3.js核心函数之数组

本文详细介绍了D3.js中用于数组操作的核心函数,包括排序方法如d3.ascending和d3.descending,计算统计量如d3.min、d3.max和d3.median,以及关联数组、映射和集合的操作。此外,还涵盖了数组运算符如d3.merge和d3.permute,以及用于数据分组和嵌套的函数。这些函数在数据可视化和数据分析中非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排序(Ordering)(这些数组的方法中,都会忽略无效的值,比如undefined,NaN)

d3.ascending(a,b),升序排序。如果a<b返回-1,a>b返回1,a=b返回0 

d3.descending(a,b),降序排序。如果a<b返回-1,a>b返回1,a=b返回0 

注:这两个比较函数都是自然排序(natural),可以与数组内置的sort方法一起使用,sort方法在没有指定比较函数的情况下,默认为字典排序(lexicographic,按照字母顺序排序)

var dataset = [33,12,92,28,6];
var asc = dataset.sort(d3.ascending); //6,12,28,33,92
var desc = dataset.sort(d3.descending); //92,33,28,12,6
var sort = dataset.sort(); // 12,28,33,6,92

d3.min(array[,accessor]),返回给定数组中自然排序最小的值。如果数组为空,则返回undefined。如果指定了accessor参数,相当于在计算最小值之前调用了array.map(accessor)方法。字符串元素的比较注重于字符的顺序,比如["20","3"]的最小值是"20",而[20,3]中最小的值是3

d3.max(array[,accessor]),返回给定数组中自然排序最大的值。其余的同d3.min()

d3.extent(array[,accessor]),返回给定数组自然排序的最小值和最大值,等同于同时调用d3.min和d3.max

d3.sum(array[,accessor]),返回给定数组的和。如果数组为空,返回0

d3.mean(array[,accessor]),返回给定数组的平均数,如果数组为空,返回undefined

d3.median(array[,accessor]),返回给定数组的中位数(如果为奇数,返回中间那个数,如果为偶数,返回中间两个数的平均数)

d3.quantile(numbers,p),返回给定数组的p分位,p的范围是0-1。比如中位数可以由p = 0.5计算,第一个四分位数是p = 0.25,第三个四分位数是p = 0.75。这个方法需要数组numbers包含数字且数字升序顺序排列,例如使用 d3.ascending排序。

d3.variance(array[,accessor]),返回给定数组的无偏总体方差。如果数组的长度小于2,返回undefined

d3.deviation(array[,accessor]),返回数组的标准差,即方差的平方根。如果数组的长度小于2,返回undefined

d3.bisectLeft(array,x[,lo[,hi]]),获取数组项的左侧位置。bisectLeft()所使用的数组必须经过递增排序。第二个参数用于指定某项的位置,如果此项在数组中存在,则返回此位置的左边。如果此项在数组中不存在,则返回第一个大于此项的值得左边。

//定义数组
    var numbers = [10,13,16,19,22,25]
    //获取16左边在数组中的位置
    var iLeft = d3.bisectLeft(numbers.sort(d3.ascending),16);
    console.log(iLeft) //2
    // 在iLeft位置处,删除0项,出入66
    numbers.splice(iLeft,0,66)
    //打印新数组
    console.log(numbers)  // [10, 13, 66, 16, 19, 22, 25]

/**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值