數組的處理 :
數組時一種常用的數據結構,通常是由相同數據類型的項組成集合,擁有數組名,可以憑借數組名和下標來訪問數組項。雖然JavaScript允許一個數組中存在不同的數據類型,但實際很少這樣使用。需要被可視化的數據常以數組的形式存在,雖然JavaScript中提供了不少操作數組的方法,但JavaScript不是為了數據可視化而存在的。因此,D3數據可視化的需求封裝了不少數組處理函數。
一 排序 :
排序的方法:
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;
之前給大家說過對選擇集使用sort()方法。但是如果不指定比較函數的情況下,默認是d3.ascending。 這是D3提供的一個遞增函數。其實D3給我們提供了遞增和遞減兩個比較函數。比較函數的規則是 :有函數function(a,b),
如果要使a位于b之前,則返回值小于0;
如果要使a位于b之后,則返回值大于0;
如果a與b相等,則返回值為0;
d3.ascending(a,b);
//遞增函數。如果a小于b,則返回-1;如果a大于b,返回1;如果a等于b,返回0;舉個例子 :
var numList = [22,44,33,11,66]; numList.sort(d3.ascending); //注意 : 此處的sort()方法使JavaScript的數組方法對象(Array)的方法,不是D3的selection.sort()方法。console.log(numList) //[11,22,33,44,66]
d3.descending(a,b);
//遞減函數。如果a大于b,則返回-1;如果a小于b,返回1;如果a等于b,返回0;再舉個例子 :
var numList = [22,44,33,11,66]; numList.sort(d3.descending); //注意 : 此處的sort()方法使JavaScript的數組方法對象(Array)的方法,不是D3的selection.sort()方法。console.log(numList) //[66,44,33,22,11]
二 求值 :
求值的方法:
d3.min(array[,accessor])
//返回數組的最小值
d3.max(array[,accessor])
//返回數組的最大值
d3.extent(array[,accessor])
//返回數組最小值和最大值
d3.sum(array[,accessor])
//返回數組的總和,如果數據為空,則返回0。
d3.mean(array[,accessor])
//返回數組的平均值,如果數組為空,則返回undefined
d3.median(array[,accessor])
//求數組的中間值,如果數組為空,則返回undefined。
新聞熱點
疑難解答
圖片精選