dotty
View and edit Graphviz DOT graphs
TLDR
Open a graph file (.gv or .dot) in the Dotty editor
Start Dotty with the [V]ersion information displayed
Set the [l]ayout [m]ode to synchronous or asynchronous
Set the m[e]ssage verbosity [l]evel (0 for minimal, 1 for detailed)
SYNOPSIS
dotty [options] [file...]
PARAMETERS
-?
Displays a brief usage message for dotty and then exits the program.
-V
Prints the version information of the dotty command and then exits.
-c
Enables client-server mode for dotty. In this mode, dotty can communicate with other processes or instances, allowing for external control or dynamic graph manipulation.
-v
Activates verbose output. This provides more detailed information during execution, which can be useful for debugging or understanding dotty's internal operations.
file...
Specifies one or more graph files to be loaded into dotty. These files should be in the DOT language format. If no files are provided, dotty will attempt to read graph data from standard input.
DESCRIPTION
dotty is an interactive graph visualization tool, a core component of the open-source Graphviz suite. It specializes in viewing and editing graphs specified in the DOT language. Unlike static layout generators like dot, dotty provides a graphical user interface built upon lefty and Tcl/Tk, enabling users to load graph files, visualize their layouts, and interactively manipulate nodes and edges. It offers features like zooming, panning, and selecting graph elements, making it an invaluable tool for debugging graph specifications, experimenting with different layout parameters, or exploring large, intricate graph structures where a static image might not suffice. Its interactive nature significantly enhances the process of understanding and refining graph visualizations.
CAVEATS
dotty requires an X Window System environment to run, as it is a graphical application and does not function in purely text-based terminals. Performance can be significantly impacted when dealing with extremely large or highly complex graphs, leading to slower rendering and interactive response times. While it allows interactive changes, these modifications are not automatically saved to the original DOT file; users must explicitly export their changes. Its initial layout quality is dependent on the underlying Graphviz layout engine (e.g., dot) used to generate the graph structure.
GRAPHICAL USER INTERFACE (GUI)
dotty provides a rich GUI, offering functionalities like zooming, panning, node/edge selection, attribute inspection, and interactive modification of graph elements. This visual interaction is a primary distinction from command-line tools.
CLIENT-SERVER MODE
The -c option enables dotty to operate as a server. This allows other programs or scripts to dynamically send graph data to it for visualization, or to programmatically request graph manipulations, facilitating integration into larger interactive systems.
DOT LANGUAGE SUPPORT
dotty natively supports and interprets the DOT language, the standard textual graph description language used by all Graphviz tools. This ensures seamless interoperability and consistent interpretation within the entire Graphviz ecosystem.
HISTORY
dotty emerged as a key component of the Graphviz (Graph Visualization Software) project, initiated at AT&T Bell Labs (later AT&T Labs Research) in the mid-1990s. Graphviz was developed to automate graph drawing. While dot served as the foundational command-line tool for generating static layouts, the need for an interactive environment to explore, debug, and fine-tune these graphs led to the creation of dotty. It leveraged lefty, a programmable graphics editor, and Tcl/Tk for its user interface, providing real-time interaction crucial for analyzing complex graph structures and extending graph visualization beyond static image generation.


