D3.js force o gráfico direcionado, reduza os cruzamentos de borda fazendo com que as bordas se repelem

Então eu já tenho uma página que desenha um gráfico direcionado à força, como o mostradoAqui.

E isso funciona bem. Estou usando o JS deAqui, com alguns ajustes para espalhar os nós um pouco melhor.

Estas são mais ou menos as únicas diferenças:

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();

Onde a redução da força do link parece tornar os links mais parecidos com springs, torna-se semelhante aoFruchterman e Reingold técnica frequentemente usada. Isso funciona razoavelmente bem, mas apenas para gráficos relativamente pequenos. Com gráficos maiores, o número de cruzamentos aumenta - como seria de se esperar, mas a solução em que ele está normalmente está longe de ser ideal. Não estou procurando um método para obter a solução ideal, sei que é muito difícil. Eu gostaria apenas de ter alguma adição bruta que tente forçar as linhas a se separarem, assim como os nós.

Existe uma maneira de adicionar uma repulsão entre os links, bem como entre os nós? Eu não estou familiarizado com o modo como a força D3 funciona, e não consigo encontrar nada que diga que isso é possível ...

questionAnswers(4)

yourAnswerToTheQuestion