D3: Можно ли добавить несколько (более 2) ребер между узлами?

Я строю график силы D3 для визуализации сетевого трафика. Необходимо связать два узла с более чем двумя путями. Это возможно? Помощь приветствуется.


person user2300875    schedule 19.04.2013    source источник
comment
Похоже, есть похожий вопрос по той же теме. stackoverflow.com/ вопросов/11368339/ jsfiddle.net/7HZcR/3 Позвольте мне попробовать .   -  person user2300875    schedule 20.04.2013


Ответы (1)


Ничто не мешает вам рисовать несколько ребер между узлами. Тогда единственная вещь заключается в том, что компоновка принудительно направленного графа сделана так, чтобы два узла использовали только одну ссылку. Таким образом, я бы рекомендовал сделать следующее:

  • С точки зрения силового ориентированного графа есть только одна связь.
  • С точки зрения рисования нарисуйте несколько ребер, если оба узла имеют несколько ребер.

Которые дают следующую структуру данных для ребер:

links = {
    source: 0, //index of source node
    target: 0 //index of target node
    representations : [{color: "red"}, {color:"blue"}]
}

Таким образом, когда вы даете ссылки на силовой направленный граф, он не будет жаловаться. Но когда вы на самом деле рисуете ссылку, вы можете перебирать массив representations, чтобы рисовать разные ссылки.

person Christopher Chiche    schedule 19.04.2013
comment
Спасибо за ответ. Но как мне итерировать представление при рисовании ссылок. Пример: а именно.path.enter().append(path).attr(id,)... Я использую приведенную выше строку для отображения ссылок между узлами. Где в этом я буду называть массив представлений? Спасибо, - person user2300875; 24.04.2013