 Graph drawing

This article is about the general subject of graph drawing. For the annual research symposium, see International Symposium on Graph Drawing.
Graph drawing is an area of mathematics and computer science combining methods from geometric graph theory and information visualization to derive twodimensional depictions of graphs arising from applications such as social network analysis, cartography, and bioinformatics.^{[1]} A drawing of a graph or network diagram is basically a pictorial representation of the vertices and edges of a graph. This drawing should not be confused with the graph itself: very different layouts can correspond to the same graph.^{[2]} In the abstract, all that matters is which pairs vertices are connected by edges. In the concrete, however, the arrangement of these vertices and edges within a drawing affects its understandability, usability, fabrication cost, and aesthetics.^{[3]}
Contents
Graphical conventions
Graphs are frequently drawn as nodelink diagrams in which the vertices are represented as disks or boxes and the edges are represented as line segments, polylines, or curves in the Euclidean plane.^{[3]}
In the case of directed graphs, arrowheads form a commonlyused graphical convention to show their orientation;^{[2]} however, user studies have shown that other conventions such as tapering provide this information more effectively.^{[4]}
Alternative conventions to nodelink diagrams include adjacency representations such as circle packings, in which vertices are represented by disjoint regions in the plane and edges are represented by adjacencies between regions; intersection representations in which vertices are represented by nondisjoint geometric objects and edges are represented by their intersections; visibility representations in which vertices are represented by regions in the plane and edges are represented by regions that have an unobstructed line of sight to each other; confluent drawings, in which edges are represented as smooth curves within mathematical train tracks; and visualizations of the adjacency matrix of the graph.
Quality measures
Many different quality measures have been defined for graph drawings, in an attempt to find objective means of evaluating their aesthetics and usability.^{[5]} In addition to guiding the choice between different layout methods for the same graph, some layout methods attempt to directly optimize these measures.
 The crossing number of a drawing is the number of pairs of edges that cross each other. If the graph is planar, then it is often convenient to draw it without any edge intersections; that is, in this case, a graph drawing represents a graph embedding. However, nonplanar graphs frequently arise in applications, so graph drawing algorithms must generally allow for edge crossings.^{[6]}
 The area of a drawing is the size of its smallest bounding box, relative to the closest distance between any two vertices. Drawings with smaller area are generally preferable to those with larger area, because they allow the features of the drawing to be shown at greater size and therefore more legibly. The aspect ratio of the bounding box may also be important.
 Symmetry display is the problem of finding symmetry groups within a given graph, and finding a drawing that displays as much of the symmetry as possible. Some layout methods automatically lead to symmetric drawings; alternatively, some drawing methods start by finding symmetries in the input graph and using them to construct a drawing.^{[7]}
 It is important that edges have shapes that are as simple as possible, to make it easier for the eye to follow them. In polyline drawings, the complexity of an edge may be measured by its number of bends, and many methods aim to provide drawings with few total bends or few bends per edge. Similarly for spline curves the complexity of an edge may be measured by the number of control points on the edge.
 Several commonly used quality measures concern lengths of edges: it is generally desirable to minimize the total length of the edges as well as the maximum length of any edge. Additionally, it may be preferable for the lengths of edges to be uniform rather than highly varied.
 Angular resolution is a measure of the sharpest angles in a graph drawing. If a graph has vertices with high degree then it necessarily will have small angular resolution, but the angular resolution can be bounded below by a function of the degree.^{[8]}
Layout methods
There are many different graph layout strategies:
 In forcebased layout systems, the graph drawing software modifies an initial vertex placement by continuously moving the vertices according to a system of forces based on physical metaphors related to systems of springs or molecular mechanics. Typically, these systems combine attractive forces between adjacent vertices with repulsive forces between all pairs of vertices, in order to seek a layout in which edge lengths are small while vertices are wellseparated. These systems may perform gradient descent based minimization of an energy function, or they may translate the forces directly into velocities or accelerations for the moving vertices.^{[9]}
 Spectral layout methods use as coordinates the eigenvectors of a matrix such as the Laplacian derived from the adjacency matrix of the graph.^{[10]}
 In orthogonal layout methods, the edges of the graph run horizontally or vertically, parallel to the coordinate axes of the layout. These methods were originally designed for VLSI and PCB layout problems but they have also been adapted for graph drawing. They typically involve a multiphase approach in which an input graph is planarized by replacing crossing points by vertices, a topological embedding of the planarized graph is found, edge orientations are chosen to minimize bends, vertices are placed consistently with these orientations, and finally a layout compaction stage reduces the area of the drawing.^{[11]}
 Tree layout algorithms these show a rooted treelike formation, suitable for trees. Often, in a technique called "balloon layout", the children of each node in the tree are drawn on a circle surrounding the node, with the radii of these circles diminishing at lower levels in the tree so that these circles do not overlap.^{[12]}
 Layered graph drawing methods (often called Sugiyamastyle drawing) are best suited for directed acyclic graphs or graphs that are nearly acyclic, such as the graphs of dependencies between modules or functions in a software system. In these methods, the nodes of the graph are arranged into horizontal layers using methods such as the Coffman–Graham algorithm, in such a way that most edges go downwards from one layer to the next; after this step, the nodes within each layer are arranged in order to minimize crossings.^{[13]}
 Circular layout methods place the vertices of the graph on a circle, choosing carefully the ordering of the vertices around the circle to reduce crossings and place adjacent vertices close to each other. Edges may be drawn either as chords of the circle or as arcs inside or outside of the circle. In some cases, multiple circles may be used.^{[14]}
Applicationspecific graph drawings
Graphs and graph drawings arising in other areas of application include
 Sociograms, drawings of a social network, as often offered by social network analysis software^{[15]}
 Hasse diagrams, a type of graph drawing specialized to partial orders^{[16]}
 Dessin d'enfants, a type of graph drawing used in algebraic geometry^{[17]}
 State diagrams, graphical representations of finite state machines^{[18]}
 Computer network diagrams, depictions of the nodes and connections in a computer network.
 Flow charts, drawings in which the nodes represent the steps of an algorithm and the edges represent control flow between steps.
 Data flow diagrams, drawings in which the nodes represent the components of an information system and the edges represent the movement of information from one component to another.
In addition, the placement and routing steps of electronic design automation are similar in many ways to graph drawing, and the graph drawing literature includes several results borrowed from the EDA literature. However, these problems also differ in several important ways: for instance, in EDA, area minimization and signal length are more important than aesthetics, and the routing problem in EDA may have more than two terminals per net while the analogous problem in graph drawing generally only involves pairs of vertices for each edge.
Software
Software, systems, and providers of systems for drawing graphs include:
 Graphviz, an opensource graph drawing system from AT&T^{[19]}
 yEd, a widespread graph editor with graph layout functionality^{[20]}
 Microsoft Automatic Graph Layout, a .NET library (formerly called GLEE) for laying out graphs^{[21]}
 Tom Sawyer Software^{[22]}
 Tulip (software)^{[23]}
Notes
 ^ Di Battista et al. (1994), pp. vii–viii; Herman, Melançon & Marshall (2000), Section 1.1, "Typical Application Areas".
 ^ ^{a} ^{b} Di Battista et al. (1994), p. 6.
 ^ ^{a} ^{b} Di Battista et al. (1994), p. viii.
 ^ Holten & van Wijk (2009); Holten et al. (2011).
 ^ Di Battista et al. (1994), Section 2.1.2, Aesthetics, pp. 14–16; Purchase, Cohen & James (1997).
 ^ Di Battista et al. (1994), p 14.
 ^ Di Battista et al. (1994), p. 16.
 ^ Formann et al. (1993).
 ^ Di Battista et al. (1994), Section 2.7, "The ForceDirected Approach", pp. 29–30, and Chapter 10, "ForceDirected Methods", pp. 303–326.
 ^ Beckman (1994); Koren (2005).
 ^ Di Battista et al. (1994), Chapter 5, "Flow and Orthogonal Drawings", pp. 137–170; (Eiglsperger, Fekete & Klau 2001).
 ^ Herman, Melançon & Marshall (2000), Section 2.2, "Traditional Layout – An Overview".
 ^ Sugiyama, Tagawa & Toda (1981); Bastert & Matuszewski (2001); Di Battista et al. (1994), Chapter 9, "Layered Drawings of Digraphs", pp. 265–302.
 ^ Doğrusöz, Madden & Madden (1997).
 ^ Scott (2000).
 ^ Di Battista et al. (1994), pp. 1516, and Chapter 6, "Flow and Upward Planarity", pp. 171–214; Freese (2004).
 ^ Zapponi (2003).
 ^ Anderson & Head (2006).
 ^ "Graphviz and Dynagraph – Static and Dynamic Graph Drawing Tools", by John Ellson, Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, and Gordon Woodhull, in Jünger & Mutzel (2004).
 ^ "yFiles – Visualization and Automatic Layout of Graphs", by Roland Wiese, Markus Eiglsperger, and Michael Kaufmann, in Jünger & Mutzel (2004).
 ^ Nachmanson, Robertson & Lee (2008).
 ^ Madden et al. (1996).
 ^ "Tulip – A Huge Graph Visualization Framework", by David Auber, in Jünger & Mutzel (2004).
References
 Anderson, James Andrew; Head, Thomas J. (2006), Automata Theory with Modern Applications, Cambridge University Press, pp. 38–41, ISBN 9780521848879, http://books.google.com/books?id=ikS8BLdLDxIC&pg=PA38.
 Bastert, Oliver; Matuszewski, Christian (2001), "Layered drawings of digraphs", in Kaufmann, Michael; Wagner, Dorothea, Drawing Graphs: Methods and Models, Lecture Notes in Computer Science, 2025, SpringerVerlag, pp. 87–120, doi:10.1007/3540449698_5.
 Beckman, Brian (1994), Theory of Spectral Graph Layout, Tech. Report MSRTR9404, Microsoft Research, http://research.microsoft.com/apps/pubs/default.aspx?id=69611.
 Di Battista, Giuseppe; Eades, Peter; Tamassia, Roberto; Tollis, Ioannis G. (1994), "Algorithms for Drawing Graphs: an Annotated Bibliography", Computational Geometry: Theory and Applications 4: 235–282, http://www.cs.brown.edu/people/rt/gd.html.
 Di Battista, Giuseppe; Eades, Peter; Tamassia, Roberto; Tollis, Ioannis G. (1998), Graph Drawing: Algorithms for the Visualization of Graphs, Prentice Hall, ISBN 9780133016154.
 Doğrusöz, Uğur; Madden, Brendan; Madden, Patrick (1997), "Circular layout in the Graph Layout toolkit", in North, Stephen, Symposium on Graph Drawing, GD '96 Berkeley, California, USA, September 18–20, 1996, Proceedings, Lecture Notes in Computer Science, 1190, SpringerVerlag, pp. 92–100, doi:10.1007/3540624953_40.
 Eiglsperger, Markus; Fekete, Sándor; Klau, Gunnar (2001), "Orthogonal graph drawing", in Kaufmann, Michael; Wagner, Dorothea, Drawing Graphs, Lecture Notes in Computer Science, 2025, Springer Berlin / Heidelberg, pp. 121–171, doi:10.1007/3540449698_6.
 Formann, M.; Hagerup, T.; Haralambides, J.; Kaufmann, M.; Leighton, F. T.; Symvonis, A.; Welzl, E.; Woeginger, G. (1993), "Drawing graphs in the plane with high resolution", SIAM Journal on Computing 22 (5): 1035–1052, doi:10.1137/0222063, MR1237161.
 Freese, Ralph (2004), "Automated lattice drawing", in Eklund, Peter, Concept Lattices: Second International Conference on Formal Concept Analysis, ICFCA 2004, Sydney, Australia, February 2326, 2004, Proceedings, Lecture Notes in Computer Science, 2961, SpringerVerlag, pp. 589–590, doi:10.1007/9783540246510_12, http://www.math.hawaii.edu/~ralph/Preprints/latdrawing.pdf.
 Herman, Ivan; Melançon, Guy; Marshall, M. Scott (2000), "Graph Visualization and Navigation in Information Visualization: A Survey", IEEE Transactions on Visualization and Computer Graphics 6 (1): 24–43, doi:10.1109/2945.841119, http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.28.8892.
 Holten, Danny; Isenberg, Petra; van Wijk, Jarke J.; Fekete, JeanDaniel (2011), "An extended evaluation of the readability of tapered, animated, and textured directededge representations in nodelink graphs", IEEE Pacific Visualization Symposium (PacificVis 2011), pp. 195–202, doi:10.1109/PACIFICVIS.2011.5742390, http://www.lri.fr/~isenberg/publications/papers/Holten_2011_AEP.pdf.
 Holten, Danny; van Wijk, Jarke J. (2009), "A user study on visualizing directed edges in graphs", Proceedings of the 27th International Conference on Human Factors in Computing Systems (CHI '09), pp. 2299–2308, doi:10.1145/1518701.1519054, http://www.win.tue.nl/~dholten/papers/directed_edges_chi.pdf.
 Jünger, Michael; Mutzel, Petra (2004), Graph Drawing Software, SpringerVerlag, ISBN 9783540008811.
 Koren, Yehuda (2005), "Drawing graphs by eigenvectors: theory and practice", Computers & Mathematics with Applications 49 (1112): 1867–1888, doi:10.1016/j.camwa.2004.08.015, MR2154691, https://akpublic.research.att.com/areas/visualization/papers_videos/pdf/DBLPjournalscamwaKoren05.pdf.
 Madden, Brendan; Madden, Patrick; Powers, Steve; Himsolt, Michael (1996), "Portable graph layout and editing", in Brandenburg, Franz J., Graph Drawing: Symposium on Graph Drawing, GD '95, Passau, Germany, September 20–22, 1995, Proceedings, Lecture Notes in Computer Science, 1027, SpringerVerlag, pp. 385–395, doi:10.1007/BFb0021822.
 Nachmanson, Lev; Robertson, George; Lee, Bongshin (2008), "Drawing Graphs with GLEE", in Hong, SeokHee; Nishizeki, Takao; Quan, Wu, Graph Drawing, 15th International Symposium, GD 2007, Sydney, Australia, September 2426, 2007, Revised Papers, Lecture Notes in Computer Science, 4875, SpringerVerlag, pp. 389–394, doi:10.1007/9783540775379_38, ftp://ftp.research.microsoft.com/pub/TR/TR200772.pdf.
 Purchase, H. C.; Cohen, R. F.; James, M. I. (1997), "An experimental study of the basis for graph drawing algorithms", Journal of Experimental Algorithmics 2: Article 4, doi:10.1145/264216.264222, https://secure.cs.uvic.ca/twiki/pub/Research/Chisel/ComputationalAestheticsProject/Vol2Nbr4.pdf.
 Scott, John (2000), "Sociograms and Graph Theory", Social network analysis: a handbook (2nd ed.), pp. 64–69, ISBN 9780761963394, http://books.google.com/books?id=Ww3_bKcz6kgC&pg=PA.
 Sugiyama, Kozo; Tagawa, Shôjirô; Toda, Mitsuhiko (1981), "Methods for visual understanding of hierarchical system structures", IEEE Transactions on Systems, Man, and Cybernetics SMC11 (2): 109–125, doi:10.1109/TSMC.1981.4308636, MR0611436.
 Zapponi, Leonardo (August 2003), "What is a Dessin d'Enfant", Notices of the American Mathematical Society 50: 788–789, ISSN 00029920, http://www.ams.org/notices/200307/whatis.pdf.
External links
 Graph drawing eprint archive: including information on papers from all Graph Drawing symposia.
 Graph drawing at the Open Directory Project for many additional links related to graph drawing.
Wikimedia Foundation. 2010.