the lib layout they're using kaynağına bakarsanız, işlevi bulabilirsiniz. Sadece refactor ve bunu enjekte ederseniz size iyi bir başlangıç noktası vermelidir.
_spreadNodes: function(data) {
var chart = this,
nodesByBreadth = d3.nest()
.key(function(d) { return d.x; })
.entries(data.nodes)
.map(function(d) { return d.values; });
nodesByBreadth.forEach(function(nodes) {
var i,
node,
sum = d3.sum(nodes, function(o) { return o.dy; }),
padding = (chart.features.height - sum)/nodes.length,
y0 = 0;
nodes.sort(function(a, b) { return a.y - b.y; });
for (i = 0; i < nodes.length; ++i) {
node = nodes[i];
node.y = y0;
y0 += node.dy + padding;
}
});
}