J'essaye d'écrire ma propre fonction pour peser des liens pour un graphe orienté Force d3 v4.Comment personnaliser la force de la liaison d3 en fonction du nombre de liens et de nœuds? (d3 v4)
La fonction de force par défaut est here et selon le readme il est possible de le changer en passant une nouvelle fonction comme argument. (Notez que la fonction dans le readme est légèrement différente de celle du code actuel).
Ceci est la partie du code, je voudrais travailler:
var simulation = d3.forceSimulation()
.force("link", d3.forceLink()
.distance(60)
.id(function (d) { return d.name;})
.strength(function (link) {/* my code here */}))
J'ai essayé de remplacer le commentaire par la valeur par défaut:
function (link) { return 1/Math.min(count[link.source.index],
count[link.target.index]); }
Sans succès.
'count' n'est pas accessible à partir du rappel prévu à' .strength() '. Cette variable est utilisée en interne par 'd3.forceLink()' mais n'est pas exposée. Cela peut aider à spécifier ce que vous voulez réaliser avec votre code, pour vous aider à trouver une solution avec les moyens disponibles. – altocumulus
oui, je me suis rendu compte que c'était un peu en retard ... j'étais capable de le faire fonctionner avec '1/Math.min (d.source.size, d.target.size)' car mes nœuds ont un attribut 'size' remplace ce compte. Merci d'avoir répondu – Dabrule