General Graph Drawing
| GraphPlot[{vi1->vj1,vi2->vj2,…}] | generate a plot of the graph in which vertex vik is connected to vertex vjk |
| GraphPlot[{{vi1->vj1,lbl1},…}] | associate labels lblk with edges in the graph |
| GraphPlot[m] | generate a plot of the graph represented by the adjacency matrix m |
| GraphPlot3D[{vi1->vj1,vi2->vj2,…}] | generate a 3D plot of the graph in which vertex vik is connected to vertex vjk |
| GraphPlot3D[{{vi1->vj1,lbl1},…}] | associate labels lblk with edges in the graph |
| GraphPlot3D[m] | generate a 3D plot of the graph represented by the adjacency matrix m |
option name | default value | |
| DirectedEdges | False | whether to show edges as directed arrows |
| EdgeLabels | Automatic | whether to include labels given for edges |
| EdgeShapeFunction | Automatic | function to give explicit graphics for edges |
| GraphLayout | Automatic | the method used to lay out the graph |
| MultiedgeStyle | Automatic | how to draw multiple edges between vertices |
| PlotRangePadding | Automatic | how much padding to put around the plot |
| "PackingLayout" | Automatic | method to use for packing components |
| PlotStyle | Automatic | style in which objects are drawn |
| SelfLoopStyle | Automatic | how to draw edges linking a vertex to itself |
| VertexCoordinates | Automatic | rules for explicit vertex coordinates |
| VertexLabels | Automatic | whether to show vertex names as labels |
| VertexShapeFunction | Automatic | function to give explicit graphics for vertices |
DirectedEdges
EdgeLabels
EdgeShapeFunction
GraphLayout
| Automatic | a method suitable for the problem is chosen automatically |
| "CircularEmbedding" | lay out the vertices in a circle |
| "HighDimensionalEmbedding" | invoke the high-dimensional embedding method, in which the graph is first laid out in a high-dimensional space based on the graph distances of the vertices to k centers; this layout is then projected to 2D or 3D space by linear combination of the high-dimensional coordinates using principal component analysis |
| "RadialEmbedding" | invoke the radial embedding method, which is most suitable for tree or tree-like graphs; if the graph is not a tree, a spanning tree is first constructed, and a radial embedding of the spanning tree is used to derive the drawing for the graph |
| "RandomEmbedding" | lay out vertices randomly |
| "SpiralEmbedding" |
lay out the vertices in a spiral; in 3D, this distributes vertices uniformly on a sphere
|
| "SpringElectricalEmbedding" | invoke the spring-electrical embedding method, in which neighboring vertices are subject to an attractive spring force that is proportional to their physical distance, and all vertices are subject to a repulsive electrical force that is inversely proportional to their distance; the overall energy is minimized |
| "SpringEmbedding" | invoke the spring embedding method, in which a vertex is subject to either attractive or repulsive force from another vertex, as though they are connected by a spring; the spring has an ideal length equal to the graph distance between the vertices; the total spring energy is minimized |
MultiedgeStyle
PackingLayout
PlotRangePadding
PlotStyle
SelfLoopStyle
VertexCoordinates
VertexLabels
VertexShapeFunction
option name | default value | |
| "EnergyControl" | Automatic | how the energy function is controlled during minimization |
| "InferentialDistance" | Automatic | cutoff distance beyond which the force calculation ignores inference from faraway vertices |
| MaxIterations | Automatic | maximum number of iterations to be used in attempting to minimize the energy |
| "RandomSeed" | Automatic | seed to use in the random generator for initial vertex placement |
| "RecursionMethod" | Automatic | whether a multilevel algorithm is used to lay out the graph |
| "StepControl" | Automatic | how step lengths are modified during energy minimization |
| "StepLength" | Automatic | initial step length used in moving the vertices |
| "Tolerance" | Automatic | tolerance used in terminating the energy minimization process |
"EnergyControl"
"InferentialDistance"
MaxIterations
"RandomSeed"
"RecursionMethod"
suboption name | default value | |
| "Randomization" | Automatic | whether to inspect vertices in random order |
| "MinSize" | Automatic | minimal number of vertices in a coarsened graph |
| "CoarseningScheme" | Automatic | how graphs are coarsened |
| "MaximalIndependentVertexSet" | link vertices in the maximal independent set if their graph distance is 3 or less |
| "MaximalIndependentVertexSetInjection" | |
link vertices in the maximal independent set if their graph distance is 1 or 2 | |
| "MaximalIndependentVertexSetRugeStuben" | |
generate the maximal independent vertex set, giving priority to vertices with more neighbors not in the set, then link vertices in the set if their graph distance is 3 or less
| |
| "MaximalIndependentVertexSetRugeStubenInjection" | |
link vertices if their graph distance is 1 or 2, giving priority to vertices with more neighbors
| |
| "MaximalIndependentEdgeSet" | consider edges in their natural order when matching |
| "MaximalIndependentEdgeSetHeavyEdge" | |
give priority to edges with higher edge weight (i.e., edges that represent a larger number of edges in the original graph) when matching
| |
| "MaximalIndependentEdgeSetSmallestVertexWeight" | |
give priority to matchings of vertices with neighbors that have the smallest vertex weight | |
"StepControl"
"StepLength"
Tolerance
option name | value | |
| "Octree" | Automatic |
whether to use an octree data structure (in three dimensions) or a quadtree data structure (in two dimensions) in the calculation of repulsive force
|
| "RepulsiveForcePower " | -1 | how fast the repulsive force decays over distance |
"Octree"
"RepulsiveForcePower"
Drawing a Graph to Fill Up More Space
Improving Performance for Drawing Very Large Graphs
E. coli Transcription Networks
Data
Drawing the Network
Protein: An Oxidoreductase
Social Network
Graphs from Words and Texts
Torus
[1] Milo, R., S. Shen-Orr, S. Itzkovitz, N. Kashtan, D. Chklovskii, and U. Alon. "Network Motifs: Simple Building Blocks of Complex Networks." Science 298, no. 5594 (2002): 824–827.
[2] Alon, U. "Collection of Complex Networks." Uri Alon Homepage 2007.
[3] Milo, R., S. Itzkovitz, N. Kashtan, et al. "Superfamilies of Designed and Evolved Networks." Science 303, no. 5663 (2004): 1538–1542.
[4] Alon, U. "1AORInter." network Motifs 2007.
[5] National Institute of Standards and Technology. "DWA512: Square Dielectric Waveguide." Matrix Market 2007.
[6] Freivalds, K., U. Dogrusoz, and P. Kikusts, "Disconnected Graph Layout and the Polyomino Packing Approach." Lecture Notes in Computer Science: Revised Papers from the 9th International Symposium on Graph Drawing 2265 (2001): 378–391.
[7] Hu, Y. F. "Graph Drawing of Square Matrices from University of Florida Sparse Matrix Collection." (2007).
[8] Hu, Y. F. "Efficient, High-Quality Force-Directed Graph Drawing." The Mathematica Journal 10, no. 1 (2006): 37–71.