Ориентация графика и позиционирование узлов в d3.js

Благодаря этому более раннему вопросу я создал статический фиксированный граф компоновки -, как показано ниже, используя принудительную компоновку вd3.js:

enter image description here

и у меня есть два конкретных вопроса для дальнейшей настройки макета:

Во-первых, я заметил, что инициализация позиций узлов детерминирована (, например. здесь сделано по диагонали, см. скрипт для подробностей )фиксирует положение узлов, и ориентация узлов, похоже, зависит от этой инициализации, а также от размеров графа силы *. Интересно, как я могу сделать узлы A, D, E, F, Iна графике выше выровненными по горизонтали ? Другими словами, я хочу повернуть ориентацию графика против -по часовой стрелке примерно на 45 градусов. Я попытался инициализировать узлы горизонтально посередине :

nodes.forEach(function(d, i) { d.x = w / size * i; d.y = h / 2; });

. но произведенный вывод имеет все узлы и ребра горизонтально в том месте, где они были инициализированы.

Во-вторых, верно ли, что график силы автоматически центрируется внутри элемента svg? Если нет, то как мы можем сделать это так? Если да, то как мы можем указать центр графика силы в элементе svg?

(*Обратите внимание на :, как ни странно, при установке .size([w, h]), где w = hдля графа силы, и детерминированной инициализации узлов вдоль диагонали,все узлы и ребра расположены вдоль этой диагонали в выходных данных, почему?)

6
задан Community 23 May 2017 в 12:06
поделиться