我有一个多线图,其数据首先按日期排序,然后是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/
答案 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
假设wellID
与wellName
唯一配对,那么它就是:
nested_data.sort(function(a,b){
return a.values[0].wellID - b.values[0].wellID;
});