Javascript 在Sankey图中:生成路径“;“尽可能短?”;?
我对使用Sankey图表感兴趣,比如 具体而言,我使用的是启用循环的块: 但是,每个“开始节点”都在最左侧绘制,每个“结束节点”都在最右侧绘制。 Ascii示例: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 ---------
|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);