# Arrange nodes between ranks correctly

**URL:** <https://forum.graphviz.org/t/arrange-nodes-between-ranks-correctly/2503>\
**Category:** Help\
**Created:** [October 20, 2024, 1:14pm UTC](https://forum.graphviz.org/t/arrange-nodes-between-ranks-correctly/2503 "2024-10-20T13:14:04Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![steveroush](https://avatars.discourse-cdn.com/v4/letter/s/a9adbd/32.png) [@steveroush](https://forum.graphviz.org/u/steveroush)\
**Post date:** [October 21, 2024, 3:03pm UTC](https://forum.graphviz.org/t/arrange-nodes-between-ranks-correctly/2503/3 "2024-10-21T15:03:42Z")

</div>

Another way to produce ~ same result as @jjlong, using **group** and **constraint=false**

```auto
/ ******************************************************************************
  forum - https://forum.graphviz.org/t/arrange-nodes-between-ranks-correctly/2503
  - now
    - rankdir=LR
    - removed rank=same - not needed
    - changed grouping A1, A2, A3 ...
    - added constraint=false keeps the groups linear
****************************************************************************** /
digraph {

  rankdir=LR; // changed

    A1 [group=1]
    A2 [group=1]
    A3 [group=1]
 
    B1 [group=2]
    B2 [group=2]
    B3 [group=2]

    C1 [group=3]
    C2 [group=3]
    C3 [group=3]

    A1 -> B1
    B1 -> C1
    
    //A1 -> B2
    A1 -> A2
    A1 -> A3 [constraint=false] // constraint=false keeps the group linear
    A2 -> A3 
    
    B1 -> B2
    B2 -> B3
    B1 -> B3 [constraint=false] // constraint=false keeps the group linear
    B2 -> A2   
    //B3 -> C2
    
    C1 -> C2
    C2 -> C3

  //B1 -> C2
  C3 -> B2
}

```

Giving:

 ![explicitNodeArrange11](https://global.discourse-cdn.com/graphviz/original/2X/2/2208f08f356ef7cd02a9785039f1c5b0331fe5c2.png)

---

_[View the full topic](https://forum.graphviz.org/t/arrange-nodes-between-ranks-correctly/2503)._
