Итак, у меня есть страница, которая рисует диаграмму направленности силы, например, показанную здесь здесь.
И это прекрасно работает. Я использую JS из здесь, с несколькими настройками, чтобы немного расширить узлы.
Это более или менее единственные отличия:
d3.json("force.json", function(json) {
var force = d3.layout.force()
.gravity(0.1)
.charge(-2000)
.linkDistance(1)
.linkStrength(0.1)
.nodes(json.nodes)
.links(json.links)
.size([w, h])
.start();
Там, где сокращение прочности связи, похоже, делает ссылки более похожими на пружины, поэтому она становится похожей на часто используемую технику Fruchterman и Reingold. Это работает достаточно хорошо, но только для довольно небольших графиков. С большими графиками количество переходов просто растет - как и следовало ожидать, но решение, на которое он приземляется, обычно далек от оптимального. Я не ищу способ получить оптимальное решение, я знаю, что это очень сложно. Я просто хотел бы, чтобы у него было грубое дополнение, которое пытается закрепить линии друг от друга, а также узлы.
Есть ли способ добавить отталкивание между ссылками, а также между узлами? Я не знаком с тем, как работает сила D3, и я не могу найти ничего что это возможно...