Добавление узлов по группам в силовой ориентированный граф D3

Я пытаюсь реализовать принудительно управляемую сеть, аналогичную этой. Однако каждому из моих узлов присваивается значение группы, например

Node    Group
node1   1
node2   1
node3   2
node4   3
node5   3

И я хотел бы, чтобы сеть росла, т.е. через некоторое время (скажем, 2 секунды) последующая группа узлов добавлялась со своими ссылками.

Это достижимо?


person Omar Wagih    schedule 12.01.2013    source источник


Ответы (1)


да. хитрость заключается в том, чтобы инкапсулировать часть, рисующую график, в функцию. Добавьте определенные группы через соответствующие интервалы в структуру данных graph и вызовите эту функцию. Код будет выглядеть примерно так.

function update(graph) {
    var link = svg.selectAll("line.link")
         .data(graph.links)
         .enter().append("line");

    var node = svg.selectAll("circle.node")
         .data(graph.nodes)
         .enter().append("circle")
         .call(force.drag);

    node.append("title")
         .text(function(d) { return d.name; });

    force.start();
}

Вы должны иметь возможность повторно использовать все остальное в основном как есть.

person Lars Kotthoff    schedule 12.01.2013
comment
Спасибо! Это именно то, что мне нужно. Я нашел идеальную реализацию того, что вы только что упомянули здесь - person Omar Wagih; 12.01.2013