latkin
latkin

Reputation: 16792

How to get different ranksep for certain ranks

I want my bottom rank of nodes to have smaller ranksep than the rest of my graph. How do you do this? I can't seem to find the right syntax to set ranksep separately for different subgraphs.

This is not working - all ranks are separated the same (both the big ranksep and small ranksep are ignored):

graph G{
  {  ranksep=1.0; // big separation
     1 -- 2
     1 -- 3
  }
  {  ranksep=0.2;  // small separation
     2 -- 4
     2 -- 5
     3 -- 6
     3 -- 7
  }
}

Result:

ranksep

Upvotes: 8

Views: 6086

Answers (2)

Laurent Bauer
Laurent Bauer

Reputation: 31

You can specifiy a minimum length for an edge. From dotguide : "minlen defines the minimum difference between the ranks of the head and tail". Note that you'll may have to tune both ranksep (global) and minlen to tune the aspect of your graph.

graph G{
  ranksep=0.1;  // small separation
  {  
     1 -- 2 [ minlen =4]
     1 -- 3 [ minlen =4]
  }
  {  
     2 -- 4
     2 -- 5
     3 -- 6
     3 -- 7
  }
}

Result : edge min length

Upvotes: 3

marapet
marapet

Reputation: 56466

ranksep is an graph attribute (not subgraph), and cannot be used to vary the distance between ranks within the same graph in dot.

Upvotes: 6

Related Questions