Get the Big Picture: Visualizing Complex Data
Graphviz is network visualization software for creating high-quality, readable node-link diagrams of large-scale data sets (1,000,000 and more nodes), and to do so completely automatically, without manual editing or cleanup. Any system or interface that deals with relationships between objects can benefit from Graphviz visualizations, including networking, databases and data analysis, bioinformatics, software engineering, programming languages and tools, and machine learning.
Datasets of 1,000,000 nodes and higher present many hard problems, and Graphviz was one of the first programs developed specifically to handle the problems of large graphs, pioneering new methods and algorithms in three key areas:
Readability. To ensure nodes don't obscure one another or links intersect, Graphviz introduced advanced geometric and numerical optimization algorithms. The list includes linear programming for aesthetic node placement, drawing curved edge splines around obstacles through numerical optimization, and robust overlap removal methods that preserve the overall structure of layouts, but make it possible to read labels even in tightly packed diagrams.
Scale. To draw large data sets in seconds or minutes, not hours or days, Graphviz pioneered algorithms such as stress majorization and multilevel optimization.
Display and exploration. To explore large datasets without getting lost in the details, Graphviz includes the novel Smyrna network viewer, which takes advantage of 3D graphics (GPU) hardware to browse large networks at high display rates while incorporating a topological fisheye tool to interactively simplify networks during exploration. The Graphviz project also collaborated with statistics researchers on a method of querying huge, quasi-random networks, such as social networks, to extract and visualize connections in an understandable way. Click here for a demo.
Options when creating graphs allow for multiple visualization types (hierarchical, radial, circular, or undirected) and a wide variety of attributes for controlling node shapes (icons, HTML tables, and other objects), sizes, line lengths and styles, color palettes, arrowheads, label positions, and the packing of multiple components, which can be important in various domain-specific diagrams.
Graphviz has long been available as open source and is often used as a graphing service for other programs. Some of these programs are listed on the Graphviz website (www.graphviz.org), which is a rich resource to learn more about Graphviz, containing demos and a gallery of graphs, sample interfaces, documentation and other reference material.
Input to Graphviz is a .dot file (a simple text language) generated programmatically or by hand, and output is a choice of common formats for immediate display or for input to other programs for browsing, editing, or further processing.
Graphviz, which won two Apple Design awards in 2004, is available for UNIX, Windows, and Mac. It includes both a simple .dotty editor for browsing graphs as well as the Smyrna 3D viewer. A cluster mapping tool will also soon be available.