neato
Visualize graphs as diagrams
TLDR
Render a PNG image with a filename based on the input filename and output format (uppercase -O)
Render a SVG image with the specified output filename (lowercase -o)
Render the output in PS, PDF, SVG, Fig, PNG, GIF, JPEG, JSON, or DOT format
Render a GIF image using stdin and stdout
Display help
SYNOPSIS
neato [options] [files]
Example: neato -Tpng input.dot -o output.png
PARAMETERS
-T
Specifies the output format for the graph. Common formats include png, svg, pdf, ps, and dot. If not specified, the default output format is usually DOT.
-o
Writes the generated graph to the specified output file. If this option is omitted, neato will send the output to standard output (stdout).
-v
Enables verbose output, displaying progress messages and additional information during the graph processing and layout stages.
-V
Prints the version information for the neato command and then exits, without processing any graph input.
-P
Renders the graph to standard output (stdout) in PostScript format and then pipes this output to a PostScript printer command (e.g., lpr), typically used for direct printing.
-K
Forces the graph to be processed by a specific layout engine, even if the command invoked is neato. Other engines include dot, fdp, sfdp, twopi, and circo.
DESCRIPTION
neato is a core component of the Graphviz suite of open-source graph visualization software. It specializes in drawing undirected graphs using a spring model or force-directed algorithm. This approach treats nodes as physical objects and edges as springs, iteratively adjusting their positions to find an equilibrium state where all forces balance. The result is an aesthetically pleasing layout that often highlights symmetry and the grouping of tightly connected components. neato is particularly well-suited for graphs where the relationships are non-hierarchical. It accepts graph descriptions in the DOT language and can generate output in numerous formats, including various image types (PNG, JPEG, SVG) and document formats (PDF, PostScript).
CAVEATS
While versatile, neato is optimized for undirected graphs. For graphs with a strong directional flow or hierarchical structure, the dot layout engine (also part of Graphviz) typically produces more intuitive and readable layouts. Processing very large or highly dense graphs with neato can be computationally intensive and consume significant system resources.
INPUT LANGUAGE
neato, like all Graphviz tools, exclusively uses the DOT language for graph description. This is a plain-text graph description language that allows users to define nodes, edges, and their associated attributes in a structured format.
ALGORITHM TYPE
The primary algorithm employed by neato is a force-directed or spring-model layout. This method simulates physical forces: attractive forces between connected nodes (like springs) and repulsive forces between all nodes. The layout is achieved by iteratively moving nodes until the system reaches a state of minimal energy, resulting in a balanced and often organic-looking arrangement.
HISTORY
neato is a key component of the Graphviz (Graph Visualization) open-source software package, which originated from AT&T Labs Research. Developed to provide robust and automated solutions for visualizing complex graphs, neato specifically addresses the challenges of laying out undirected networks where aesthetic principles like symmetry and clustered groupings are paramount. Its creation, alongside other specialized layout programs like dot, has significantly advanced the field of automated graph drawing, making sophisticated graph visualizations accessible for diverse applications ranging from network topology to biological pathways.