D3数据排序顺序

时间:2016-03-28 15:19:44

标签: d3.js

我有一个多线图,其数据首先按日期排序,然后是PFC ID(绘制的数据)。折线图本身工作正常,但我也动态创建图例,图例首先按日期排序,然后按PFC ID排序。我宁愿让传说本身按照没有日期的PFC ID排序。有没有办法可以做到这一点而不会弄乱图表?如果我从查询中删除日期的主要排序,则图表本身不再正常工作。

图例的代码如下:

    legend.append("rect")
    .attr("height",10)
    .attr("width", 25)
    .attr("class", function(d) { return d.key; })
    .attr("x", width + 30)
    .attr("y", function(d,i) { return height - 495 + (i*25); })
    .attr("stroke", function(d) { return color(d.key);})
    .attr("fill", function(d) { return color(d.key); });

可在此处找到一个示例:https://jsfiddle.net/goodspeedj/5ewLxpre/

1 个答案:

答案 0 :(得分:1)

只需在嵌套调用后对数据进行排序:

        // nest data
        var nested_data = d3.nest()
            .key(function(d) { return dimKey(d); })
            .entries(data);

        // sort on key
        nested_data.sort(function(a,b){
          return a.key.localeCompare(b.key);
        });

更新了fiddle

FOR COMMENTS

假设wellIDwellName唯一配对,那么它就是:

        nested_data.sort(function(a,b){
            return a.values[0].wellID - b.values[0].wellID;
        });

更新fiddle two.