Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Graph drawing

From Wikipedia, the free encyclopedia
Visualization of node-link graphs
"Network diagram" redirects here. For network diagrams in specific contexts, see§ Application-specific graph drawings.

Graphic representation of a minute fraction of theWWW, demonstratinghyperlinks.

Graph drawing is an area ofmathematics andcomputer science combining methods fromgeometric graph theory andinformation visualization to derive two-dimensional (or, sometimes, three-dimensional) depictions ofgraphs arising from applications such associal network analysis,cartography,linguistics, andbioinformatics.[1]

A drawing of a graph ornetwork diagram is a pictorial representation of thevertices andedges 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 of 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, andaesthetics.[3] The problem gets worse if the graph changes over time by adding and deleting edges (dynamic graph drawing) and the goal is to preserve the user's mental map.[4]

Graphical conventions

[edit]
Directed graph with arrowheads showing edge directions

Graphs are frequently drawn as node–link diagrams in which the vertices are represented as disks, boxes, or textual labels and the edges are represented asline segments,polylines, or curves in theEuclidean plane.[3] Node–link diagrams can be traced back to the 14th-16th century works of Pseudo-Lull which were published under the name ofRamon Llull, a 13th century polymath. Pseudo-Lull drew diagrams of this type forcomplete graphs in order to analyze all pairwise combinations among sets of metaphysical concepts.[5]

In the case ofdirected graphs,arrowheads form a commonly used graphical convention to show theirorientation;[2] however, user studies have shown that other conventions such as tapering provide this information more effectively.[6]Upward planar drawing uses the convention that every edge is oriented from a lower vertex to a higher vertex, making arrowheads unnecessary.[7]

Alternative conventions to node–link diagrams include adjacency representations such ascircle 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 non-disjoint 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 mathematicaltrain tracks; fabrics, in which nodes are represented as horizontal lines and edges as vertical lines;[8] and visualizations of theadjacency matrix of the graph.

Quality measures

[edit]

Many different quality measures have been defined for graph drawings, in an attempt to find objective means of evaluating their aesthetics and usability.[9] In addition to guiding the choice between different layout methods for the same graph, some layout methods attempt to directly optimize these measures.

Planar graph drawn without overlapping edges
  • Thecrossing number of a drawing is the number of pairs of edges that cross each other. If the graph isplanar, then it is often convenient to draw it without any edge intersections; that is, in this case, a graph drawing represents agraph embedding. However, nonplanar graphs frequently arise in applications, so graph drawing algorithms must generally allow for edge crossings.[10]
  • Thearea of a drawing is the size of its smallestbounding 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. Theaspect ratio of the bounding box may also be important.
  • Symmetry display is the problem of findingsymmetry 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.[11]
  • 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 itsnumber 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 highdegree then it necessarily will have small angular resolution, but the angular resolution can be bounded below by a function of the degree.[12]
  • Theslope number of a graph is the minimum number of distinct edge slopes needed in a drawing with straight line segment edges (allowing crossings).Cubic graphs have slope number at most four, but graphs of degree five may have unbounded slope number; it remains open whether the slope number of degree-4 graphs is bounded.[12]

Layout methods

[edit]
A force-based network visualization.[13]
Spectral graph layout visualization.

There are many different graph layout strategies:

  • Inforce-based 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 ofsprings ormolecular 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 well-separated. These systems may performgradient descent based minimization of anenergy function, or they may translate the forces directly into velocities or accelerations for the moving vertices.[14]
  • Spectral layout methods use as coordinates theeigenvectors of amatrix such as theLaplacian derived from theadjacency matrix of the graph.[15]
  • Orthogonal layout methods, which allow the edges of the graph to run horizontally or vertically, parallel to the coordinate axes of the layout. These methods were originally designed forVLSI andPCB 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.[16]
  • Tree layout algorithms these show a rootedtree-like formation, suitable fortrees. 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.[17]
  • Layered graph drawing methods (often called Sugiyama-style drawing) are best suited fordirected 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 theCoffman–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.[18]
Arc diagram
  • Arc diagrams, a layout style dating back to the 1960s,[19] place vertices on a line; edges may be drawn as semicircles above or below the line, or as smooth curves linked together from multiple semicircles.
  • 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.[20]
  • Dominance drawing places vertices in such a way that one vertex is upwards, rightwards, or both of another if and only if it isreachable from the other vertex. In this way, the layout style makes the reachability relation of the graph visually apparent.[21]

Application-specific graph drawings

[edit]

Graphs and graph drawings arising in other areas of application include

In addition, theplacement androuting steps ofelectronic design automation (EDA) are similar in many ways to graph drawing, as is the problem ofgreedy embedding indistributed computing, 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.

Graph drawing algorithms

[edit]

There are many algorithms for graph drawing. Among them are:

  • The Reingold-Tilford algorithm for tree drawing.[28]
  • Kant's algorithm,[29] which constructs a polyline drawing of a 3-connected planar graph such that the size of the minimal angle among arcs is at least1dπ{\displaystyle {\frac {1}{d}}\pi }, whered is the maximal node degree; and its generaliztion, that also works well for other planar graphs, by Gutwenger and Mutzel.[30]
  • Tamassia's algorithm for minimizing the number of bends in an orthogonal representation of a planar graph.[31]
  • The Magnetic Spring Model by Sugiyama and Misue.[32]

Software

[edit]
A graph drawing interface (Gephi 0.9.1)

Software, systems, and providers of systems for drawing graphs include:

  • BioFabric open-source software for visualizing large networks by drawing nodes as horizontal lines.
  • Cytoscape, open-source software for visualizing molecular interaction networks
  • Gephi, open-source network analysis and visualization software
  • graph-tool, afree/librePython library for analysis of graphs
  • Graphviz, an open-source graph drawing system fromAT&T Corporation[33]
  • Linkurious, a commercial network analysis and visualization software forgraph databases
  • Mathematica, a general-purpose computation tool that includes 2D and 3D graph visualization and graph analysis tools.[34]
  • Microsoft Automatic Graph Layout, open-source .NET library (formerly called GLEE) for laying out graphs[35]
  • NetworkX is a Python library for studying graphs and networks.
  • Tulip,[36] an open-source data visualization tool
  • yEd, a graph editor with graph layout functionality[37]
  • PGF/TikZ 3.0 with thegraphdrawing package (requiresLuaTeX).[38]
  • LaNet-vi, an open-source large network visualization software
  • OGDF, an open-source library of C++ data structures and algorithms, mostly for graph drawing[39]

See also

[edit]

References

[edit]

Footnotes

[edit]
  1. ^Di Battista et al. (1998), pp. vii–viii;Herman, Melançon & Marshall (2000), Section 1.1, "Typical Application Areas".
  2. ^abDi Battista et al. (1998), p. 6.
  3. ^abDi Battista et al. (1998), p. viii.
  4. ^Misue et al. (1995).
  5. ^Knuth (2013).
  6. ^Holten & van Wijk (2009);Holten et al. (2011).
  7. ^Garg & Tamassia (1995).
  8. ^Longabaugh (2012).
  9. ^Di Battista et al. (1998), Section 2.1.2, Aesthetics, pp. 14–16;Purchase, Cohen & James (1997).
  10. ^Di Battista et al. (1998), p 14.
  11. ^Di Battista et al. (1998), p. 16.
  12. ^abPach & Sharir (2009).
  13. ^Grandjean (2014).
  14. ^Di Battista et al. (1998), Section 2.7, "The Force-Directed Approach", pp. 29–30, and Chapter 10, "Force-Directed Methods", pp. 303–326.
  15. ^Beckman (1994);Koren (2005).
  16. ^Di Battista et al. (1998), Chapter 5, "Flow and Orthogonal Drawings", pp. 137–170;Eiglsperger, Fekete & Klau (2001).
  17. ^Herman, Melançon & Marshall (2000), Section 2.2, "Traditional Layout – An Overview".
  18. ^Sugiyama, Tagawa & Toda (1981);Bastert & Matuszewski (2001);Di Battista et al. (1998), Chapter 9, "Layered Drawings of Digraphs", pp. 265–302.
  19. ^Saaty (1964).
  20. ^Doğrusöz, Madden & Madden (1997).
  21. ^Di Battista et al. (1998), Section 4.7, "Dominance Drawings", pp. 112–127.
  22. ^Scott (2000);Brandes, Freeman & Wagner (2014).
  23. ^Di Battista et al. (1998), pp. 15–16, and Chapter 6, "Flow and Upward Planarity", pp. 171–214;Freese (2004).
  24. ^Zapponi (2003).
  25. ^Anderson & Head (2006).
  26. ^Di Battista & Rimondini (2014).
  27. ^Bachmaier, Brandes & Schreiber (2014).
  28. ^Reingold & Tilford (1981).
  29. ^Kant (1992).
  30. ^Gutwenger & Mutzel (1998).
  31. ^Tamassia (1987).
  32. ^Sugiyama & Misue (1995).
  33. ^"Graphviz and Dynagraph – Static and Dynamic Graph Drawing Tools", by John Ellson, Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, and Gordon Woodhull, inJünger & Mutzel (2004).
  34. ^"Introduction to graph drawing",Wolfram Language & System Documentation Center, retrieved2024-03-21
  35. ^Nachmanson, Robertson & Lee (2008).
  36. ^"Tulip – A Huge Graph Visualization Framework", by David Auber, inJünger & Mutzel (2004).
  37. ^"yFiles – Visualization and Automatic Layout of Graphs", by Roland Wiese, Markus Eiglsperger, and Michael Kaufmann, inJünger & Mutzel (2004).
  38. ^Tantau (2013); see also the olderGD 2012 presentationArchived 2016-05-27 at theWayback Machine
  39. ^Fink, Simon D.; Strobl, Andreas (2023). "odgf-python – A Python Interface for the Open Graph Drawing Framework". In Bekos, Michael A.; Chimani, Markus (eds.).Graph Drawing and Network Visualization. Lecture Notes in Computer Science. Vol. 14466. pp. 258–260.doi:10.1007/978-3-031-49275-4.ISBN 978-3-031-49274-7.ISSN 0302-9743.The Open Graph Drawing Framework (OGDF) is a C++ library that contains a vast amount of algorithms and data structures for automatic graph drawing.

General references

[edit]

Specialized subtopics

[edit]

Further reading

[edit]

External links

[edit]
Graph representations
Data structures
XML-based formats
Text-based formats
Related concepts
Retrieved from "https://en.wikipedia.org/w/index.php?title=Graph_drawing&oldid=1335368965"
Category:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp