D3 force layout fix root node at the center

12,754
force.on("tick", function() {
    nodes[0].x = w / 2;
    nodes[0].y = h / 2;

That should do it.

Share:
12,754

Related videos on Youtube

Alfred
Author by

Alfred

Updated on June 04, 2022

Comments

  • Alfred
    Alfred almost 2 years

    I managed to draw some basic d3 force layout graph, but struggling how to fix root node at the center.

    My data is rather simple; one root node with one-level children. Only one level. Another particular thing about my graph is that the link distance varies based on some parameter.

    I want root node to be at the center of the graph.

    Setting its property 'fixed':true doesn't work. Any idea to place root node at the center?

    • FernOfTheAndes
      FernOfTheAndes about 10 years
      Example here. Look inside force.on at the first two lines.
  • samuelg0rd0n
    samuelg0rd0n almost 9 years
    Is it possible to alter the behaviour in a way that the node is initially centered but the user can still move it?
  • bryanph
    bryanph almost 7 years
    In d3 4.0 this doesn't fix nodes but just sets the coordinates. To fix the node use "fx" and "fy"