1  dot
Makes “hierarchical” or layered drawings of directed graphs.
dot
is the default tool to use if edges have directionality.
The layout algorithm aims edges in the same direction (top to bottom, or left to right) and then attempts to avoid edge crossings and reduce edge length.
2  neato
“spring model” layouts.
neato
is the default tool to use if the graph is not too large (about 100 nodes)
and you don’t know anything else about it.
neato
attempts to minimize a global energy function, which is equivalent to
statistical multidimensional scaling.
The solution is achieved using stress majorization, though the older KamadaKawai algorithm, using steepest descent, is also available.
3  twopi
Radial layouts, after Graham Wills 1997^{1}.
Nodes are placed on concentric circles depending their distance from a given root node.
You can set the root node, or let twopi
do it.
4  circo
Circular layout, after Six and Tollis 1999^{1}^{2}, Kauffman and Wiese 2002^{3}.
This is suitable for certain diagrams of multiple cyclic structures, such as certain telecommunications networks.

Six J.M., Tollis I.G. (1999) A Framework for Circular Drawings of Networks. In: Kratochvíyl J. (eds) Graph Drawing. GD 1999. Lecture Notes in Computer Science, vol 1731. Springer, Berlin, Heidelberg. ↩︎

Six J.M., Tollis I.G. (1999) Circular Drawings of Biconnected Graphs. In: Goodrich M.T., McGeoch C.C. (eds) Algorithm Engineering and Experimentation. ALENEX 1999. Lecture Notes in Computer Science, vol 1619. Springer, Berlin, Heidelberg. ↩︎

Michael Kaufmann, Roland Wiese (2002) Embedding Vertices at Points: Few Bends suffice for Planar Graphs. In: Journal of Graph Algorithms and Applications. vol. 6, no. 1, pp. 115–129 ↩︎
5  fdp
“spring model” layouts similar to those of neato, but does this by reducing forces rather than working with energy.
fdp
implements the FruchtermanReingold heuristic including a multigrid solver
that handles larger graphs and clustered undirected graphs.
6  osage
osage
draws clustered graphs.
As input, osage
takes any graph in the dot format.
osage
draws the graph recursively. At each level, there will be a collection of
nodes and a collection of cluster subgraphs. The internals of each cluster
subgraph are laid out, then the cluster subgraphs and nodes at the current
level are positioned relative to each other, treating each cluster subgraph as
a node.
At each level, the nodes and cluster subgraphs are viewed as rectangles to be
packed together. At present, edges are ignored during packing. Packing is done
using the standard packing functions. In particular, the graph attributes
pack
and packmode
control the layout. Each graph and cluster can
specify its own values for these attributes. Remember also that a cluster
inherits its attribute values from its parent graph.
After all nodes and clusters, edges are routed based on the value of the
splines
attribute.
7  patchwork
patchwork
draws clustered graphs using a squarified treemap layout.
As input, patchwork
takes any graph in the dot format.
Each cluster is given an area based on the areas specified by the clusters and
nodes it contains. The areas of nodes and empty clusters can be specified by
the area
attribute. The default area
is 1.
The root graph is laid out as a square. Then, recursively, the region of a cluster or graph is partitioned among its toplevel nodes and clusters, with each given a roughly square subregion with its specified area.