 GraphTheory - Maple Programming Help

# Online Help

###### All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : Discrete Mathematics : Graph Theory : GraphTheory Package : GraphTheory/DrawGraph

GraphTheory

 DrawGraph
 draw a graph stored in the Graph data structure

 Calling Sequence DrawGraph(G, options) DrawGraph(L, options)

Parameters

 G - graph L - list or set of graphs options - (optional) one or more options as specified below

Options

 The options argument can contain one or more of the options shown below. In addition, DrawGraph accepts those options listed on plot,options for 2-D visualizations and those options listed on plot3d,option for 3-D visualizations.
 • animate=truefalse, posint
 If the layout=spring or layout=spring[constant] option is specified then animate=true generates a 50 frame animation of the model. If animate=a positive integer then an animation with the specified number of frames is generated. The default is false.
 • dimension=2 or 3
 The number of dimensions in the generated plot.
 • redraw:truefalse
 If the layout=spring or layout=spring[constant] option is specified then redraw=true causes the graph to be redrawn using a different random starting position. The default is false.
 • root=v
 If the layout=tree drawing option is specified then G must be undirected or an arborescence per IsArborescence. If G is undirected and not a tree, its SpanningTree is used to determine the location of its vertices, but all of the edges of G are drawn. The additional optional argument root=v can be specified to specify the root vertex v. The value v must be a vertex in G.
 • showlabels=truefalse
 The display of vertex labels can be forced or suppressed with the option showlabels=true and showlabels=false, respectively. By default, the vertex labels are displayed when G has fewer than 100 vertices.
 • showweights=truefalse
 The display of edge weights can be forced or suppressed with the option showweights=true and showweights=false, respectively. By default, the edge weights are displayed when G is a weighted graph with fewer than 46 edges.
 • layout= default, none, bipartite, circle, planar, spectral, spring, spring[constant], or tree.
 In previous versions, this option was named style but it was renamed to distinguish it from the stylesheet option. The option name style is still supported.
 The layout option directs DrawGraph to display the input graph in a specific layout style. There are many different layout styles supported for displaying a graph such as bipartite, circle, planar, spectral, spring, and tree. A complete list with more details on each type of layout can be found in GraphLayouts.
 When layout is default, then the components of a disconnected graph are detected and are displayed separately.  The type of each graph or a component of a disconnected graph is distinguished and is displayed accordingly.
 • layoutoptions=list
 Some graph layout options can be controlled in more detail with additional options. More details can be found in GraphLayouts.
 • stylesheet=list
 The colors, line weights, and font choices can be specified with the stylesheet option which is detailed in GraphTheory/GraphDrawingOptions.
 Animations and 3-D graph renderings also support the stylesheet option except that 3-D visualizations ignore any vertex shape specification.
 Specifying stylesheet="legacy" displays the graph with the default settings for Maple 2016 and previous versions.

Description

 • DrawGraph displays the vertices and edges of a graph G as a Maple plot. If G has fewer than 100 vertices, the vertex labels are also displayed. If G is a weighted graph with fewer than 46 edges then the edge weights are displayed.
 • The colors, line weights, and font choices can be specified with the stylesheet option, detailed in GraphTheory/GraphDrawingOptions.
 • By default, the vertex positions for paths, cycles, cliques and most of the graphs in the SpecialGraphs, such as the Petersen graph, have been predefined, so that when displayed, they appear as they would in a textbook.  You can specify the vertex positions for the display of a graph using the SetVertexPositions command.
 • You can set individual vertex and edge styles using the StyleVertex and StyleEdge commands.  You can set vertex and edge colors of a subgraph of G using the StyleSubgraph command. Additionally, vertices, edges, and subgraphs can be highlighted with a different default style using the commands HighlightVertex, HighlightEdges, HighlightSubgraph, and HighlightTrail.
 • If G is a set or list of graphs, then the graphs are displayed in a Matrix format, where any leftover cells are simply displayed as empty. The number of graphs to display horizontally is chosen as a value between 2 and 4 determined by the number of graphs in the input list. This can be overridden by providing the width option to tell DrawGraph the number of graphs to display horizontally. For example, specify width=1 to display the graphs in one long vertical band, and specify width=nops(G) to display the graphs in one wide horizontal band.

Examples

 > with(GraphTheory):
 > with(SpecialGraphs):
 > with(RandomGraphs):
 > G := Graph(undirected,{{1,2},{2,3},{3,4},{4,1}}); # a cycle
 ${G}{≔}{\mathrm{Graph 1: an undirected unweighted graph with 4 vertices and 4 edge\left(s\right)}}$ (1)
 > DrawGraph(G); > F := Graph(6,undirected,{{1,2},{2,3},{5,6}}); # a forest
 ${F}{≔}{\mathrm{Graph 2: an undirected unweighted graph with 6 vertices and 3 edge\left(s\right)}}$ (2)
 > DrawGraph(F); > C := Graph(directed,{[1,2],[2,3],[3,4],[4,1]}); # a directed cycle
 ${C}{≔}{\mathrm{Graph 3: a directed unweighted graph with 4 vertices and 4 arc\left(s\right)}}$ (3)
 > DrawGraph(C); > DrawGraph(C,layout=circle); > W := Matrix([[0,2,3,1],[2,0,4,1],[3,4,0,5],[6,2,5,0]]);
 $\left[\begin{array}{rrrr}0& 2& 3& 1\\ 2& 0& 4& 1\\ 3& 4& 0& 5\\ 6& 2& 5& 0\end{array}\right]$ (4)
 > G := Graph(directed,weighted,W);
 ${G}{≔}{\mathrm{Graph 4: a directed weighted graph with 4 vertices and 12 arc\left(s\right)}}$ (5)
 > DrawGraph(G); > K33 := CompleteGraph(3,3);
 ${\mathrm{K33}}{≔}{\mathrm{Graph 5: an undirected unweighted graph with 6 vertices and 9 edge\left(s\right)}}$ (6)
 > DrawGraph(K33, layout=bipartite); > T := SpanningTree(K33);
 ${T}{≔}{\mathrm{Graph 6: an undirected unweighted graph with 6 vertices and 5 edge\left(s\right)}}$ (7)
 > DrawGraph(T, layout=tree, root=2); > HighlightEdges(K33, T, "Red");
 > DrawGraph(K33); > P := PetersenGraph();
 ${P}{≔}{\mathrm{Graph 7: an undirected unweighted graph with 10 vertices and 15 edge\left(s\right)}}$ (8)
 > DrawGraph(P); > DrawGraph(P, layout=spring); > DrawGraph(P, layout=spring, redraw); To play the following animation in this help page, right-click (Control-click, on Macintosh) the plot to display the context menu.  Select Animation > Play.

 > DrawGraph(P, layout=spring, animate=true); The commands to create the plots from the Plotting Guide are

 > H := HypercubeGraph(3);
 ${H}{≔}{\mathrm{Graph 8: an undirected unweighted graph with 8 vertices and 12 edge\left(s\right)}}$ (9)
 > DrawGraph(H); > DrawGraph(H, layout=spring, dimension=3); > IsHamiltonian(H, 'cycle');
 ${\mathrm{true}}$ (10)
 > cycle;
 $\left[{"000"}{,}{"100"}{,}{"110"}{,}{"010"}{,}{"011"}{,}{"111"}{,}{"101"}{,}{"001"}{,}{"000"}\right]$ (11)
 > HighlightTrail(H, cycle, "Red");
 > DrawGraph(H); > T := RandomTree(100);
 ${T}{≔}{\mathrm{Graph 9: an undirected unweighted graph with 100 vertices and 99 edge\left(s\right)}}$ (12)
 > DrawGraph(T); > S := SoccerBallGraph();
 ${S}{≔}{\mathrm{Graph 10: an undirected unweighted graph with 60 vertices and 90 edge\left(s\right)}}$ (13)
 > DrawGraph(S); > DrawGraph(S, layout=spring, dimension=3); >

Compatibility

 • The stylesheet option was introduced in Maple 2017.
 • For more information on Maple 2017 changes, see Updates in Maple 2017.
 • The GraphTheory[DrawGraph] command was updated in Maple 2020.
 • The layout and layoutoptions options were introduced in Maple 2020.
 • The animate and stylesheet options were updated in Maple 2020.
 • For more information on Maple 2020 changes, see Updates in Maple 2020.

 See Also