stackoverflow社区有一个很好的解决方案,可以沿x轴移动sankey图表中的节点(链接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
...
根据上述解决方案,我在computeNodeBreadths()
内更新了d3.sankey()
,并在感兴趣的节点中包含了"xPos":1
;但改变没有生效。
是否有人对上述解决方案有建议的更新,允许用户手动调整接收器节点x位置?
答案 0 :(得分:0)
经过一些研究,答案是在moveSinksRight(x)
方法d3.sankey()
中注释掉computeNodeBreadths()
行。归功于Greg Ross:https://stackoverflow.com/a/21540569/4245462