如何从json文件中分配Sankey图(D3)中节点的x轴位置

时间:2014-03-31 02:52:03

标签: javascript json d3.js sankey-diagram

我终于在D3中找到了一个Sankey Diagram,它允许节点在x轴上移动,但我想从json文件中分配一个值来修复特定位置的位置。

http://bl.ocks.org/d3noob/raw/5028304/

我想要做的是使用Sankey Diagram作为时间表。

1 个答案:

答案 0 :(得分:2)

让我们调用x坐标layerlayer=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