使用D3 Sankey插件,我使用新值更新Sankey图表(更改数据,传递节点和链接的新值 - 保持所有这些值一致)。是否有像d3.treemap' s sticky这样的功能来维护页面上的节点和链接顺序?如果没有,有没有办法建立这个?
var sankey = d3.sankey()
.nodeWidth(15)
.nodePadding(10)
.size([width, height]);
.sticky(true)
我遵循此处的模式:http://bost.ocks.org/mike/sankey/
答案 0 :(得分: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。您希望这指向某种硬连线值,您需要在第一次迭代或数据准备中计算这些值。当碰撞检测功能运行时,它仍然会被调整,因此您可能会看到您的节点被推出位置,但这将为您提供保持控制的最佳机会。