Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Sankey图中:生成路径“;“尽可能短?”;?_Javascript_Svg_D3.js_Sankey Diagram - Fatal编程技术网

Javascript 在Sankey图中:生成路径“;“尽可能短?”;?

Javascript 在Sankey图中:生成路径“;“尽可能短?”;?,javascript,svg,d3.js,sankey-diagram,Javascript,Svg,D3.js,Sankey Diagram,我对使用Sankey图表感兴趣,比如 具体而言,我使用的是启用循环的块: 但是,每个“开始节点”都在最左侧绘制,每个“结束节点”都在最右侧绘制。 Ascii示例: |A ----> B ----> C ----> D| |E-------------> C | <-- starts far left |F --------------------> D| <-- starts far left |G ----> B ---------

我对使用Sankey图表感兴趣,比如

具体而言,我使用的是启用循环的块:

但是,每个“开始节点”都在最左侧绘制,每个“结束节点”都在最右侧绘制。 Ascii示例:

|A ----> B ----> C ----> D|
|E-------------> C        | <-- starts far left
|F --------------------> D| <-- starts far left
|G ----> B ------------> H| <-- finishes far right
|A-->B-->C-->D|
|E-------->C | D | B-------->H | B--->C--->D|
|这是我的方法:


我正在使用graph.links[3].source.x=200等显式设置x坐标。这可以链接到数据集,而不是硬编码。我想是的,只需简单更改Sankey代码插件,就可以实现您想要的

Sankey插件中的函数
ComputeNodeReadths()
中有一行:

moveSinksRight(x);
应改为:

moveSourcesRight(x);
以下两个示例对此进行了说明:

例1 (原始Sankey插件)

例2 (包括拟议的更改)

例3 (同时使用
MoveSinksRight()
movesourcesrright()

例4 (无
MoveSinksRight()
movesourcesrright()


非常感谢您的回复,但我想知道的是算法中需要更改的内容,而不是如何硬编码坐标。非常好,这正是我想要的。谢谢您似乎在示例2和3中使用了相同的JSFIDLE?
moveSourcesRight(x);