Zaimplementowałem układ sił D3. Problem jednak dla mnie polega na tym, że układ nie rozprzestrzenia się po ekranie. Poniżej znajduje się zrzut:Odległość łącza dynamicznego w układzie sił D3
Chcę węzły rozprzestrzeniać po ekranie z odległości dołączanej dynamicznie jak tam jest dużo białej przestrzeni po prawej i lewej stronie. Starałem się losowo odległość łącza następująco:
d3.layout.force()
.charge(-800)
.linkDistance(function(d){
return (Math.random() * (400 - 200) + 1);
})
.size([w, h]);
To zwiększa odległość łącza ale również w kierunku pionowym. Wydarzenie próbowałem ustawić atrybut linkStrength(), ale to po prostu nie działa dla mnie. Jak mogę rozłożyć ten układ w całym regionie tylko w kierunku poziomym? Czy istnieje sposób, w jaki możemy zdefiniować odległość łącza, aby dopasować się do prostokątnego obszaru mojej strony?
Aha i przy okazji diagram akordów może idealnie pasować do twoich danych, więc możesz też to sprawdzić (więcej informacji [tutaj] (https://github.com/mbostock/d3/wiki/Chord-Layout)) –
Po powiązaniu rysunku z wykonaniem w [przykładzie ramki ograniczającej] (http://mbostock.github.io/d3/talk/20110921/bounding.html) i ustawieniu ładowania na bardzo wysoką wartość, węzły są wyrównane przez granicę iw tym przypadku, jeśli liczba węzłów jest bardzo wysoka, wykres może nie być czytelny. Czy istnieje sposób, w jaki mogę przypisać określone pozycje x i y do każdego węzła, ponieważ układ działa w oparciu o pewien warunek, aby zajmował cały obszar? – Nagesh