簡體   English   中英

sortKeys不適用於d3.nest()

[英]sortKeys not working with d3.nest()

我想按年份而不是按值對d3朝陽的外圈進行排序,所以按時間順序排列。 這是我的代碼:

    d3.csv("etds.csv", function(error, dataset) {
        var hierarchy = {
            key: "ETD",
            values: d3.nest()
                .key(function(d) { return d.college; })
                .key(function(d) { return d.dept; })
                .sortKeys(d3.ascending).key(function(d) { return +d.year; })          
                .rollup(function(leaves) {
                    return leaves.length;
                })
                .entries(dataset)
        };

“ .sortKeys(d3.ascending)”被忽略。 外圈仍按值排列。

CSV范例:

college,dept,year,url
College of Education, Health & Human Development,Education.,2011
College of Letters & Science,Earth Sciences.,2010
College of Letters & Science,Microbiology & Immunology.,2004
College of Letters & Science,Ecology.,1984
College of Letters & Science,Chemistry & Biochemistry.,2008
College of Letters & Science,Mathematical Sciences.,2011
College of Agriculture,Land Resources & Environmental Sciences.,2009
College of Agriculture,Agricultural Economics & Economics.,1996
College of Letters & Science,English.,2007

更新:嘗試過:

.sort(function(a, b){ return d3.descending(b.values,a.values); })

更新了我的朋克

看來這可能是有問題的代碼。 我不確定如何更改它以獲取我所尋找的外圈按時間順序排列,但是如果我將d.value更改為d.key,則這些值都搞砸了,請參閱嵌入式注釋。

        var partition = d3.layout.partition()
        .children(function(d) {
            return Array.isArray(d.values) ?
                d.values : null;
        })
        .value(function(d) {
            return d.values;  //d.key sorts by year in outer ring
        });

這段代碼來自jsDataV。第7章,與GitHub相關

更新了我的朋克

我認為這是因為Nan值首次獲得記錄。 如果您看到hierarchy變量的控制台,則將看到第一個記錄的年份為Nan 在第一個記錄中進行教育之前,您需要刪除-並且這樣的“,”不會弄亂整個.csv文件。 您可以檢查此plnkr進行實時演示。

college,dept,year,url
College of Education, **Health & Human Development - Education**.,2011
College of Letters & Science,Earth Sciences.,2010
College of Letters & Science,Microbiology & Immunology.,2004
College of Letters & Science,Ecology.,1984
College of Letters & Science,Chemistry & Biochemistry.,2008
College of Letters & Science,Mathematical Sciences.,2011
College of Agriculture,Land Resources & Environmental Sciences.,2009
College of Agriculture,Agricultural Economics & Economics.,1996
College of Letters & Science,English.,2007

在此處輸入圖片說明

解決此問題:

    var partition =d3.layout.partition()
        .children(function(d) {
            return Array.isArray(d.values) ?
                d.values : null;})
        .value(function(d) {
            return d.values;
        })

        .sort(function(d) {
            return;
        });

關鍵部分是:

            .sort(function(d) {
            return;
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM