0

使用 D3 Sankey 插件,我正在使用新值更新 Sankey 图(更改数据、为节点和链接传递新值——保持所有这些值一致)。是否有类似 d3.treemap 的粘性来维护页面上的节点和链接顺序的功能?如果没有,有没有办法建立这个?

var sankey = d3.sankey()
    .nodeWidth(15)
    .nodePadding(10)
    .size([width, height]);
    .sticky(true)

我在这里遵循模式:http: //bost.ocks.org/mike/sankey/

4

1 回答 1

1

不,没有。如果您想深入了解布局,请查看此处:

function computeNodeDepths(iterations) {
 var nodesByBreadth = d3.nest()
    .key(function(d) { return d.x; })
    .sortKeys(d3.ascending)
    .entries(nodes)
    .map(function(d) { return d.values; });

initializeNodeDepth();
...

请注意,sortKeys 指向 d3.ascending。您希望它指向某种硬连线值,您需要在第一次迭代或数据准备中计算该值。当碰撞检测功能运行时它仍然会被调整,所以你可能会看到你的节点被推到了位置,但这会给你最好的机会来保持一些控制。

于 2014-12-19T00:04:19.763 回答