d3.js 桑基图:沿 X 轴手动定位 SINKS

d3.js Sankey Chart: Manually Position SINKS Along X Axis

Whosebug 社区有一个很好的解决方案,可以在桑基图中沿 x 轴移动节点 (link here)。

但是,我注意到无法手动更改 sink 节点的位置(即那些自动分配到最右边的节点)。因为我将时间合并到 sankey 图中,所以我需要将某些汇节点固定在手动指定的 x 位置。

这是一个需要此功能的 JSFiddle 示例。具体来说,我需要 node "6": "Departed (6 mo.)" 固定到 x 位置 '1'。

"nodes":[
    ...
    {"node":6,"name":"Departed (6 mo.)","xPos":1},  // <-- need to move to position x=1; manual override not taking effect
    ...

根据上述解决方案,我已在 d3.sankey() 内更新了 computeNodeBreadths() 并将 "xPos":1 包含在感兴趣的节点内;但更改没有生效。

有没有人对上述解决方案有推荐的更新,允许手动调整 sink 节点 x 位置?

经过一番研究,答案是注释掉 d3.sankey() 方法 computeNodeBreadths() 中的行 moveSinksRight(x)。感谢 Greg Ross: