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
 coordinates. "Anchors" are added to connect disconnected components:
 coordinates. "Anchors" are added to connect disconnected components:VertexLabels
 ,
,  , …,
, …,  , where
, where  is the size of the matrix. For graphs specified by a list of rules, labels are the expressions used in the rules. VertexLabels->None displays each vertex as a point. You can also use Tooltip[vk,vlbl] anywhere in the list of rules to specify an alternative tooltip for a vertex vk.
 is the size of the matrix. For graphs specified by a list of rules, labels are the expressions used in the rules. VertexLabels->None displays each vertex as a point. You can also use Tooltip[vk,vlbl] anywhere in the list of rules to specify an alternative tooltip for a vertex vk. VertexShapeFunction
 coordinate. However if "Rotation"->False is specified, this step is skipped.
 coordinate. However if "Rotation"->False is specified, this step is skipped.| 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"
 and
 and  is
 is  by default. If the value of RepulsiveForcePower is
 by default. If the value of RepulsiveForcePower is  (with
 (with  ), then the repulsive force is defined as
), then the repulsive force is defined as  , where
, where  is the distance between the vertices and
 is the distance between the vertices and  is a constant coefficient.
 is a constant coefficient. , the boundary vertices are not as close to each other as they are with the default value of
, the boundary vertices are not as close to each other as they are with the default value of  :
: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.



