Note that this is adjusted before the
size attribute constraints
In addition, the calculations usually ignore the node sizes, so the final drawing size may only approximate what is desired.
ratio is numeric,
ratio is taken as the desired aspect ratio.
Then, if the actual aspect ratio is less than the desired ratio,
the drawing height is scaled up to achieve the
desired ratio; if the actual ratio is greater than that desired ratio,
the drawing width is scaled up.
ratio="fill" and the
attribute is set, node positions are scaled, separately in both x
and y, so that the final drawing exactly fills the specified size.
size values exceed the width
and height of the drawing, then both coordinate values of each
node are scaled up accordingly. However, if either size dimension
is smaller than the corresponding dimension in the drawing, one
dimension is scaled up so that the final drawing has the same aspect
ratio as specified by
Then, when rendered, the layout will be
scaled down uniformly in both dimensions to fit the given
size, which may cause nodes and text
to shrink as well. This may not be what the user
wants, but it avoids the hard problem of how to reposition the
nodes in an acceptable fashion to reduce the drawing size.
ratio="compress" and the
attribute is set, dot attempts to compress the initial layout to fit
in the given size. This achieves a tighter packing of nodes but
reduces the balance and symmetry. This feature only works in dot.
size attribute is set, and both the
width and the height of the graph are less than the value in
size, node positions are scaled uniformly until at least one
size exactly. Note that this is distinct from
size as the desired size, as here the drawing is expanded
before edges are generated and all node and text sizes remain unchanged.
page attribute is set and the graph
cannot be drawn on a single page, then
size is set to an
In particular, the size in a given dimension will be the smallest integral
multiple of the page size in that dimension which is at least half the
current size. The two dimensions are then scaled independently to the
new size. This feature only works in
Search the Graphviz codebase for