neato is a reasonable default tool to use for undirected graphs that aren't
too large (about 100 nodes), when you don't know anything else about the graph.
neato attempts to minimize a global energy function, which is equivalent to
statistical multi-dimensional scaling.
The solution is achieved using stress majorization1, though the older
Kamada-Kawai algorithm2, using steepest descent, is also available,
- PDF Manual
- User Guide (caveat: not current with latest features of Graphviz)
- Browse code
Attributes for neato features
- Damping – Factor damping force motions.. Valid on: Graphs.
- defaultdist – The distance between nodes in separate connected components. Valid on: Graphs.
- dim – Set the number of dimensions used for the layout. Valid on: Graphs.
- dimen – Set the number of dimensions used for rendering. Valid on: Graphs.
- diredgeconstraints – Whether to constrain most edges to point downwards. Valid on: Graphs.
- epsilon – Terminating condition. Valid on: Graphs.
- esep – Margin used around polygons for purposes of spline edge routing. Valid on: Graphs.
- inputscale – Scales the input positions to convert between length units. Valid on: Graphs.
- len – Preferred edge length, in inches. Valid on: Edges.
- levelsgap – strictness of neato level constraints. Valid on: Graphs.
- maxiter – Sets the number of iterations used. Valid on: Graphs.
- mode – Technique for optimizing the layout. Valid on: Graphs.
- model – Specifies how the distance matrix is computed for the input graph. Valid on: Graphs.
- normalize – normalizes coordinates of final layout. Valid on: Graphs.
- notranslate – Whether to avoid translating layout to the origin point. Valid on: Graphs.
- overlap – Determines if and how node overlaps should be removed. Valid on: Graphs.
- overlap_scaling – Scale layout by factor, to reduce node overlap.. Valid on: Graphs.
- pin – Keeps the node at the node's given input position. Valid on: Nodes.
- pos – Position of node, or spline control points. Valid on: Edges, Nodes.
- scale – Scales layout by the given factor after the initial layout. Valid on: Graphs.
- sep – Margin to leave around nodes when removing node overlap. Valid on: Graphs.
- start – Parameter used to determine the initial layout of nodes. Valid on: Graphs.
- voro_margin – Tuning margin of Voronoi technique. Valid on: Graphs.
Gansner, E.R., Koren, Y., North, S. (2005). Graph Drawing by Stress Majorization. In: Pach, J. (eds) Graph Drawing. GD 2004. Lecture Notes in Computer Science, vol 3383. Springer, Berlin, Heidelberg. ↩︎
Tomihisa Kamada, Satoru Kawai, An algorithm for drawing general undirected graphs, Information Processing Letters, Volume 31, Issue 1, 1989, Pages 7-15. ↩︎