code: function computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {
      var nodesByBreadth = prepareNodesByBreadth(nodes, orient);
  
      initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);
      resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);
  
      for (var alpha = 1; iterations > 0; iterations--) {
          // 0.99 is a experience parameter, ensure that each iterations of
          // changes as small as possible.
          alpha *= 0.99;
          relaxRightToLeft(nodesByBreadth, alpha, orient);
          resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);
          relaxLeftToRight(nodesByBreadth, alpha, orient);
          resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);
      }
  }
docs: Using Gauss-Seidel iterations method to compute the node depth(y-position)
  
  @param {module:echarts/data/Graph~Node} nodes  node of sankey view
  @param {module:echarts/data/Graph~Edge} edges  edge of sankey view
  @param {number} height  the whole height of the area to draw the view
  @param {number} nodeGap  the vertical distance between two nodes
  in the same column.
  @param {number} iterations  the number of iterations for the algorithm