GraphTheory
StyleSubgraph
specify styles for a subgraph of a graph
Calling Sequence
Parameters
Description
Examples
Compatibility
StyleSubgraph(G, S)
StyleSubgraph(G, S, edgestylesheet=[ optionsequence ], vertexstylesheet=[ optionsequence ], ip)
G
-
graph
S
a subgraph or a list or set of subgraphs of G
ip
(optional) equation of the form inplace = true or inplace = false
edgestylesheet
(optional) optionsequence is a sequence of keyword options to specify the style or a list of such sequences
vertexstylesheet
By default the DrawGraph command draws the edges and vertices of the graph with the same set of style options. The command StyleSubgraph, allows you to specify styles for given subgraphs overriding the default or previously set styles.
A subgraph can be given explicitly as a graph or implicitly as a list/set of vertices of G, or a list/set of edges of G. In the implicit cases, explicit subgraphs will be constructed using the Subgraph command for edges or the InducedSubgraph command for vertices.
If S is a list of subgraphs then a list of colors or stylesheets can be used to associate a different color or style to each member.
By default, this command modifies G and returns nothing. If you supply the option inplace = false, then instead the changes are applied to a copy of G, and that copy is returned.
Control of the style can be set using stylesheet options. The stylesheet options are understood as modifiers to the current graph style. So, for example, if a color is not specified the current color of each vertex is kept.
Vertex Stylesheet Options
The styles that are understood for vertices are:
border : whether to draw the border (true or false), or a color. Special color values are supported.
Special value "_contrast" (the default color) automatically sets the line color to a grayscale value that contrasts with the vertex color.
Special value "_blend" sets the line color to the average of the colors of the vertex and the plot background.
Special value "_match" sets the font color to the vertex color and the vertex is drawn in the background color. It also supports all the other formats in ColorTools/Format.
color : color of the vertex. See ColorTools/Format.
fontcolor : color of the vertex label. Special color values are supported.
Special value "_contrast" (the default color) automatically sets the font to a grayscale value that contrasts with the vertex color.
Special value "_match" sets the font color to the vertex color.
Special value "_blend" also sets the font color to the vertex color. It also supports all the other formats in ColorTools/Format.
fontsize : size of the vertex label, a positive integer in points
fontfamily : font family to use for the vertex label, a string. See plot/options.
fontstyle : font style to use for the vertex label, a string. See plot/options.
font : shorthand to specify a vertex label font as a list either [family, size] or [family, style, size]
padding : extra space around vertex label, a number in points
shape : shape of the vertex, a string understood by plottools/polygonbyname or default. Examples:
ellipse, circle,
common polygons up to ten sides, e.g., hexagon
arbitrary regular polygons given as number-gon, e.g., 7gon
a regular star version of polygons with more than 4 sides will be drawn if prefixed (with or without spaces) with star, e.g., star hexagon
a flattened version of a polygon will be drawn if prefixed with wide, e.g., wide pentagon
the wide and star prefixes can be combined in any order
polygons are drawn with a flat bottom unless prefixed with inverted in which case it will have point bottom, e.g., inverted 9gon
the inverted, star, and wide prefixes can be combined, but inverted must come first, though it can be abbreviated to inv, e.g., invwide13gon
thickness : thickness of the border, a non-negative value
Edge Stylesheet Options
The styles that are understood for edges are:
arrowpos : the position of the arrow on a directed edge, a number between 0 and 1
arrowsize : the length, in points, of the arrow on a directed edge
arrowshape : a string understood by plottools/polygonbyname or "line" specifying the shape of the arrowhead on a directed edge
color : color of the edge line. See ColorTools/Format. Special color values are supported
Special value "_contrast" sets the color to a grayscale value that contrasts with the background color of the plot.
Special value "_match" sets the font color to the weight color.
Special value "_blend" also sets the font color to average of the colors of the vertices on each end of the edge.
fontcolor : color of the weight label. See ColorTools/Format. Special color values are supported.
Special value "_contrast" sets the font to a grayscale value that contrasts with the background color of the plot.
Special value "_match" (the default) sets the font color to the edge color.
fontsize : size of the weight label in points, a positive integer
fontfamily : font family to use for the weight label, a string. See plot/options.
fontstyle : font style to use for the weight label, a string. See plot/options.
font : shorthand to specify the weight label font as a list either [family, size] or [family, style, size]
linestyle : style of the edge line, a string: solid, dot, dash, dashdot, longdash, spacedash, or spacedot. See plot/options.
thickness : thickness of the edge line, a non-negative value
with⁡GraphTheory:
G≔Graph⁡1,2,1,3,2,3,3,4,4,5,4,6,5,6
G≔Graph 1: an undirected graph with 6 vertices and 7 edge(s)
H≔Graph⁡1,2,3,4,1,2,1,3,2,3
H≔Graph 2: an undirected graph with 4 vertices and 3 edge(s)
G0≔StyleSubgraph⁡G,H,inplace=false,vertexstylesheet=color=Red,edgestylesheet=color=Blue
G0≔Graph 3: an undirected graph with 6 vertices and 7 edge(s)
DrawGraph⁡G0
Here is an example of highlighting multiple subgraphs given as lists of vertices:
B≔BiconnectedComponents⁡G
B≔4,5,6,3,4,1,2,3
G1≔StyleSubgraph⁡G,B,vertexstylesheet=color=Blue,color=Green,color=Cyan,edgestylesheet=color=Yellow,inplace=false
G1≔Graph 4: an undirected graph with 6 vertices and 7 edge(s)
DrawGraph⁡G1,style=spring
More detailed stylesheets can be used instead of just colors:
G2≔StyleSubgraph⁡G,B1,edgestylesheet=thickness=4,vertexstylesheet=thickness=4,color=White,inplace=false
G2≔Graph 5: an undirected graph with 6 vertices and 7 edge(s)
DrawGraph⁡G2
Here a subgraph specified as a set of edges:
G3≔StyleSubgraph⁡G,1,2,1,3,2,3,vertexstylesheet=color=Red,inplace=false
G3≔Graph 6: an undirected graph with 6 vertices and 7 edge(s)
DrawGraph⁡G3
Here you can see how setting subgraph styles add to existing vertex styles.
P≔SpecialGraphs:-PetersenGraph⁡
P≔Graph 7: an undirected graph with 10 vertices and 15 edge(s)
StyleVertex⁡P,1,fontcolor=Red
StyleSubgraph⁡P,1,2,3,4,5,6,7,8,9,10,edgestylesheet=color=Blue,color=Green,vertexstylesheet=color=White,color=Black,fontcolor=White
DrawGraph⁡P
StyleSubgraph⁡P,1,2,3,4,5,6,7,8,9,10,edgestylesheet=thickness=4,color=Black,thickness=2,vertexstylesheet=color=White,color=Black,fontcolor=White
The GraphTheory[StyleSubgraph] command was introduced in Maple 2020.
For more information on Maple 2020 changes, see Updates in Maple 2020.
See Also
DrawGraph
StyleEdge
StyleVertex
Subgraph
Download Help Document