Как назначить положение оси X узла в диаграмме Санки (D3) из файла json

Наконец-то я нашел диаграмму Санки в D3, которая позволяет перемещать узлы по оси x, но я хотел бы присвоить значение из файла json, чтобы зафиксировать положение в определенных местах.

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

Я пытаюсь использовать диаграмму Санки в качестве временной шкалы.


person Ernesto    schedule 31.03.2014    source источник
comment
Попробуйте stackoverflow.com/questions/21539265/?   -  person psychemedia    schedule 03.04.2014
comment
Интересная концепция смешивания временной шкалы и диаграммы Санки! +1!   -  person VividD    schedule 03.05.2014


Ответы (1)


Назовем координату 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