Graph drawing
From Wikipedia, the free encyclopedia
As a branch of graph theory, Graph drawing applies topology and geometry to derive two- and three-dimensional representations of graphs. Graph drawing is motivated by applications such as VLSI circuit design, social network analysis, cartography, and bioinformatics.
Contents |
[edit] Methods
Graphs are usually represented pictorially using dots to represent vertices, and arcs to represent the edges between connected vertices. Arrows can be used to show the orientation of directed edges. Note that this graphical representation (a graph layout or an embedding) should not be confused with the graph itself (the abstract, non-graphical structure). Very different layouts can correspond to the same graph (see external link #1). In the abstract, all that matters is which vertices are connected to which others by how many edges. In the concrete, however, the arrangement of these vertices and edges impacts understandability, usability, fabrication cost, and aesthetics.
Based on these concepts and caveats, there are different graph layout strategies, such as:
- force-based layout: gradient-descent minimization of an energy function based on physical metaphors related to molecular mechanics.
- spectral layout: layout using as coordinates the eigenvectors of a matrix such as the Laplacian derived from the adjacency matrix of the graph.
- orthogonal layout: layout with edges running horizontally or vertically, with approaches that reduce the number of edge crossovers and area covered. These are of great interest in the areas of VLSI and PCB layout design
- symmetric layout: these attempt to find symmetry groups within the graph
- tree layout: these show a rooted tree-like formation, suitable for trees (i.e., graphs without cycles)
- hierarchical layouts: these attempt to find a source and sink within a directed graph and arrange the nodes in layers with most edges starting from the source and flowing in the direction of the sink
In some applications of graph drawing it is important to formally specify, implement, and verify such procedures.
[edit] Metrics
There is no "best" layout — different ways of displaying a graph emphasize different characteristics. One measure of a graph drawing algorithm's quality is the number of edge crossings it draws. While some graphs cannot be drawn without edge crossings, some graphs can. These are called planar graphs. According to this metric, "good" algorithms draw graphs with as few edge crossings as possible.
Another possible measure is the closeness of vertices, many graphs look better if non-adjacent vertices are not plotted close to each other. A further measure is the nearness of a vertex to a non-adjacent edge, this distance needs to be sufficiently big for an aesthetically pleasing appearance.
[edit] See also
- Hasse diagram, a type of graph drawing specialized to partial orders
- State diagrams, graphical representations of finite state machines
- Graphviz, a widely used open-source graph drawing system from AT&T
[edit] References
- Giuseppe Di Battista, Peter Eades, Roberto Tamassia, Ioannis G. Tollis. Graph Drawing: Algorithms for the Visualization of Graphs. Prentice Hall, 1999.
- Giuseppe Di Battista, Peter Eades, Roberto Tamassia, Ioannis G. Tollis. Algorithms for Drawing Graphs: an Annotated Bibliography. Computational Geometry: Theory and Applications 4:235-282 (1994). http://www.cs.brown.edu/people/rt/gd.html
- Isabel F. Cruz, Roberto Tamassia. Graph Drawing Tutorial. http://www.cs.brown.edu/people/rt/gd.html
[edit] External links
The following graph drawing web sites are particularly notable:
- graphdrawing.org, the official web site of the Graph Drawing Steering Committee, organizers of the annual International Symposium on Graph Drawing. Includes a description of the graphml graph description language, example graph data, and links to many other graph drawing resources.
- The Graph drawing e-print archive, including information on papers from all Graph Drawing symposia.
See Graph drawing at the Open Directory Project (suggest site) for many additional links related to graph drawing.