根据源数据的某些属性排序和弦

时间:2015-06-29 17:38:46

标签: d3.js

我在d3中有一个和弦图,看起来像这样:

enter image description here

每组的颜色是根据源数据的属性计算的(在转换为矩阵之前),并从每个组的索引中查找,如下所示:

var groupPath = group.append("path")
    .attr("id", function(d, i) { return "group" + i; })
    .attr("d", arc)
    .style("fill", function(d, i) { return MySourceData[i].inArea ? "blue" : "red"; });

现在我想要做的就是对和弦进行排序,以便所有的蓝调都在一起,所有的红色都在一起,但似乎并不是一个简单的方法。我知道你为sortGroups(和sortSubGroups提供了一个函数),但似乎传递给函数的参数只是和弦的值,我需要让索引成为能够弄清楚它们是否应该组合在一起。

是否有任何简单的方法可以根据最终从索引派生的某些标准对组进行排序?

1 个答案:

答案 0 :(得分:0)

实现这一目标的最佳方法似乎是在将源数据转换为矩阵之前先简单地对其进行排序。如果数据不会改变(这在我的情况下不是这样),这可以正常工作,但是如果你有可能改变的数据,并且在改变中可能最终需要使用,这将是一个真正的痛苦,因为你需要重新排序矩阵。