Organizes nodes without overlaps in
horizontal or vertical levels.
Arranges the graph such that most of
the links are short and flow uniformly in the same direction (from
left to right, from top to bottom, and so on).
Reduces the number of link crossings.
Most of the time, produces drawings with no crossings or only a small
number of crossings.
Often produces balanced drawings that
emphasize the symmetries in the graph.
Supports self-links (that is, links with the same origin and
destination node), multiple links between the same pair of nodes, and cycles.
Efficient, scalable algorithm. Produces
a nice layout for most sparse and medium-dense graphs relatively quickly,
even if the number of nodes is very large.
Provides several alignment and offset
options.
Supports port specifications where links
attach the nodes. Allows you to specify which side of a node (top,
bottom, left, right) a link can be connected to or to specify which
relative port position should be used for the connection.
Supports layout constraints. Allows
you to specify relative positional constraints, for instance, that
a node is above another node or left of another node.
Incremental and nonincremental mode.
In incremental mode, the previous position of nodes are taken into
account. Positions the nodes without changing the relative order of
the nodes so that the layout is stable on incremental changes of the
graph.
The computation time depends on the
number of nodes, the number of levels, and the number of links that
cross several levels. Most of the time, the links are placed between
adjacent levels, which keeps the computation time small.