Я пытаюсь написать свою собственную функцию для взвешивания ссылок для d3 v4 Force, ориентированного графика.Как вы настраиваете силу связи d3 как функцию ссылок и узлов? (d3 v4)
Функция силы по умолчанию задана here и в соответствии с readme ее можно изменить, передав новую функцию в качестве аргумента. (Обратите внимание, что функция в readme немного отличается от функции в реальном коде).
Это часть кода, я хотел бы работать:
var simulation = d3.forceSimulation()
.force("link", d3.forceLink()
.distance(60)
.id(function (d) { return d.name;})
.strength(function (link) {/* my code here */}))
Я попытался заменить комментарий с по умолчанию:
function (link) { return 1/Math.min(count[link.source.index],
count[link.target.index]); }
без успеха.
'count' не доступны из обратного вызова, предоставляемой' .strength() '. Эта переменная используется внутри 'd3.forceLink()', но не отображается. Это может помочь определить, что вы хотите достичь с помощью своего кода, чтобы помочь вам найти решение с помощью имеющихся средств. – altocumulus
Да, я понял, что немного поздно ... Я смог заставить его работать с '1/Math.min (d.source.size, d.target.size)', потому что мои узлы имеют атрибут 'size', который заменяет этот счет. Спасибо за ответ – Dabrule