Назовем координату 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, будут иметь центральный узел и два по краям ширины санкея, а 0,1,5 не будут иметь.
Если вам нужна дополнительная помощь, эта функция, среди многих других, включена в мое приложение D3 Sankey: http://sankey.csaladen.es
person
csaladenes
schedule
01.05.2015