J'ai donc une page déjà, qui attire une force dirigée graphique, comme celui montré ici.
Et cela fonctionne bien. Je suis à l'aide de la JS à partir d' ici, avec un peu de bricolage pour étaler les nœuds un peu plus sympa.
Ceux-ci sont plus ou moins les seules différences:
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();
D'où la réduction de la liaison de force semble rendre les liens plus comme des ressorts, de sorte qu'il devient semblable à la Fruchterman & Reingold technique souvent utilisée. Cela fonctionne raisonnablement bien, mais seulement pour assez petits graphes. Avec de grandes graphiques, le nombre de passages à niveau va juste - comme on pouvait s'y attendre, mais la solution qu'il pose sur est normalement loin d'être optimale. Je ne suis pas à la recherche d'une méthode pour obtenir la solution optimale, je sais que c'est très difficile. Je voudrais juste avoir quelques brut de plus qui tente de forcer les lignes d'intervalle, et les nœuds.
Est-il possible d'ajouter une répulsion entre les liens, ainsi qu'entre les nœuds? Je ne suis pas familier avec la façon dont D3-d'œuvre travaille, et je n'arrive pas à trouver quelque chose qui dit que c'est possible...