2016-03-24 6 views
0

Я вижу несколько примеров используемой функциональности распространения D3 Sankey here. Однако я не вижу функции, реализованной в плагине D3 Sankey.D3 Функциональность распространения Sankey

Может ли кто-нибудь помочь с кодом функциональности Spread, который я могу вставить в фактический плагин?

ответ

0

Если вы посмотрите на источник the lib layout they're using, вы можете найти функцию. Если вы просто реорганизуете и вводите это, он должен дать вам приличную отправную точку.

_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; 
    } 
    }); 
}