我终于在D3中找到了一个Sankey Diagram,它允许节点在x轴上移动,但我想从json文件中分配一个值来修复特定位置的位置。
http://bl.ocks.org/d3noob/raw/5028304/
我想要做的是使用Sankey Diagram作为时间表。
答案 0 :(得分:2)
让我们调用x坐标layer
。 layer=0
将保留边缘,layer=n
将成为右边缘。在JSON
文件的nodes
字段中,为每个节点添加键值对"layer": your_desired_x_as_integer
。
然后转到sankey.js文件并找到函数componentsByBreadth.forEach
。
将行node.x = component.x + node.x;
替换为:
if (node.layer) node.x=node.layer;
else node.x = component.x + node.x;
您也可以像这样定义图层密度,例如:放置在层0,1,2或0,4,8上的节点将具有一个中心节点,并且两个位于sankey宽度的边缘,但0,1,5将不具有。
如果您需要更多帮助,我的D3 Sankey应用程序中包含此功能以及其他功能:http://sankey.csaladen.es