Vertical sort of nodes in D3 Sankey diagram

2020-07-30 04:15发布

问题:

I'm trying to achieve a basic sankey diagram building on top of this example: http://bl.ocks.org/d3noob/c9b90689c1438f57d649

By default they get sorted by value. I want to customize the vertical order of the nodes. Here is an example:

In this case I'd like to always keep "A" on top.

Any thoughts on how to do that?

Similar question: D3 sankey diagram - enforce node position

回答1:

You can modify this function:

function center(node) {
  return node.y + node.dy / 2;
}

like this:

function center(node) {
   return 0;
}

and after modify ascendingDepth's function like this:

function ascendingDepth(a, b) {
  return b.y - a.y;
}

I found this in another question How to force y position of one branch in d3 sankey plugin?