Итак, у меня уже есть страница, которая рисует график, ориентированный на силу, как показано здесь .
И это прекрасно работает. Я использую 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, и я не могу найти ничего, что говорило бы о том, что это возможно...