2016-03-24 8 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; 
    } 
    }); 
} 
関連する問題