Change Size (Width and Height) of Graph (GraphViz & dot)
DEFAULT
I will start with a simple graph that is laid out by the dot engine in the default manner:
digraph {
node [shape=circle, width=0.4];
A->B
A->D
B->C
D->E
}
CHANGING HEIGHT
As you can see, the layout is quite tight. Notice that my ranks (rows) naturally go from top to bottom. I can affect the height of the graph by exploiting this and using the ranksep
(rank separation) variable to explicitly set the space between the ranks:
digraph {
node [shape=circle, width=0.4];
ranksep = 1;
A->B
A->D
B->C
D->E
}
CHANGING WIDTH
Finally, we may want to widen the diagram. Here we use the nodesep
variable to increase the space between the nodes (columns):
digraph {
node [shape=circle, width=0.4];
nodesep=1.5;
A->B
A->D
B->C
D->E
}
![TomServo](https://i.stack.imgur.com/1uZeL.jpg?s=256&g=1)
TomServo
Updated on June 03, 2022Comments
-
TomServo about 2 years
Often, the default layout of graphs drawn by GraphViz in the dot language is a little "tight." With too little visual space, it's hard to put meaningful labels on edges and the graph can look cluttered.
How do I affect the vertical and horizontal spacing of GraphViz / dot graphs?
-
jabellcu over 2 yearsIs there any official documentation available? Thanks.
-
TomServo over 2 years@jabellcu Of course, it's at graphviz.org It's much-changed since I answered this question four years ago, but looks better now.
-
ADTC over 2 yearsIf you're using
dot
command to visualize a generated digraph, you can add these as options to the command:-Granksep=1
or-Gnodesep=1.5
etc.