D3.js 排序链接D3js力有向图

D3.js 排序链接D3js力有向图,d3.js,force-layout,D3.js,Force Layout,我有一个力定向图,链接有3种颜色(红色、绿色和橙色)。 是否可以根据这些颜色对链接进行排序 感谢并致以最诚挚的问候。d3有一个对选择进行操作的排序方法。因此,如果要按颜色对所选内容进行排序,可以这样做: var order = {red: -1, green: 0, orange: 1}; var links = d3.selectAll('line.link') // a and b are data items, in this case links. This code assume

我有一个力定向图,链接有3种颜色(红色、绿色和橙色)。 是否可以根据这些颜色对链接进行排序


感谢并致以最诚挚的问候。

d3有一个对选择进行操作的
排序方法。因此,如果要按颜色对所选内容进行排序,可以这样做:

var order = {red: -1, green: 0, orange: 1};

var links = d3.selectAll('line.link')
  // a and b are data items, in this case links. This code assumes that there
  // exists a color property on the links which is 'red', 'green', or 'orange'.
  .sort(function(a, b) {
    return order[a.color] < order[b.color] ? -1 : order[b.color] < order[a.color] ? 1 : 0;
  });
var顺序={red:-1,green:0,orange:1};
var links=d3.selectAll('line.link')
//a和b是数据项,在本例中为链接。此代码假定
//链接上存在“红色”、“绿色”或“橙色”的颜色属性。
.排序(功能(a、b){
退货订单[a.color]<订单[b.color]?-1:order[b.color]<订单[a.color]?1:0;
});
从中可以看出,这也会对DOM元素进行排序,以便文档顺序与选择顺序等效:

选择。排序(比较器)

根据指定的顺序对当前选择中的元素进行排序 比较器功能。比较器函数传递两个数据 要比较的元素a和b,返回负、正或 零值。如果是负数,那么a应该在b之前;如果是肯定的,那么 a应该在b之后;否则,a和b被视为相等,且 秩序是任意的。注意,不能保证排序是稳定的; 但是,它保证具有与浏览器相同的行为 数组上的内置排序方法

selection.order()

在文档中重新插入元素,使文档顺序 匹配选择顺序。这相当于在以下情况下调用sort() 数据已经排序,但速度要快得多

order
方法使DOM元素顺序与选择顺序匹配,如果选择已经排序,则更可取

文件:


能否添加一个示例,并提供当前设置的示例?谢谢。请将您的HTML标记添加到示例中。它不起作用,因为数据数组是从odata服务动态设置的:(我想您可以在JSFIDLE中放置一些测试/示例数据。谢谢,我会尝试的