GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing reference.wolfram.com — NestGraph—Wolfram Documentation NestGraph[f,expr,n] gives the graph obtained by starting with expr and applying f successively n times. NestGraph[f,{expr1,expr2,…},n] gives the graph obtained by applying f to expr1, expr2, …. NestGraph[f,graph,n] gives the graph obtained by applying f to the vertices of graph and extending the graph. Details and Options
Examples
Basic Examples
Scope
Options
AnnotationRules
DirectedEdges
EdgeLabels
EdgeShapeFunction
EdgeStyle
EdgeWeight
GraphHighlight
GraphHighlightStyle
GraphLayout
PlotTheme
Base Themes
Feature Themes
VertexCoordinates
VertexLabels
VertexShape
VertexShapeFunction
VertexSize
VertexStyle
VertexWeight
Applications
Properties & Relations
Neat Examples
See Also
Related Guides
Related Links
History
Cite this Page
NestGraphNestGraph[f,expr,n] gives the graph obtained by starting with expr and applying f successively n times. NestGraph[f,{expr1,expr2,…},n] gives the graph obtained by applying f to expr1, expr2, …. NestGraph[f,graph,n] gives the graph obtained by applying f to the vertices of graph and extending the graph. Details and Options
List of all optionsExamplesopen all close allBasic Examples (4)Construct a graph by starting with x and applying f successively 3 times: NestGraph[f, x, 3, VertexLabels -> Automatic, ImagePadding -> 40]The function to nest can be a pure function: NestGraph[Mod[# ^ 2 + 1, 10]&, Range[0, 9], VertexLabels -> Automatic]Generate a binary tree of nested functions: NestGraph[{f[#], g[#]}&, x, 3, VertexLabels -> Automatic]Generate a graph of neighboring countries around Switzerland: NestGraph[#["BorderingCountries"]&, ["switzerland"], 2, VertexLabels -> Automatic]Scope (3)NestGraph works with any function including an expression: NestGraph[f, x, 3]A pure function: NestGraph[Mod[# ^ 2 + 1, 10]&, Range[0, 9], 2]NestGraph works with any expression including integers: NestGraph[Mod[# ^ 2 + 1, 10]&, {1, 2, 3, 4, 5}, 2]Strings: NestGraph[WordData[#, "Synonyms", "List"] &, "tree", 2]Graphs: NestGraph[WordData[#, "Synonyms", "List"] &, [image], 2]Limit the depth of the tree: NestGraph[WordData[#, "Synonyms", "List"] &, "tree", 3]Options (80)AnnotationRules (2)Specify an annotation for vertices: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, AnnotationRules -> {1 -> {VertexLabels -> "hello"}}]Edges: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, AnnotationRules -> {01 -> {EdgeLabels -> "hello"}}]DirectedEdges (1)By default, a directed graph is generated: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 4], 2]Use DirectedEdges->False to generate an undirected graph: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 4], 2, DirectedEdges -> False]EdgeLabels (7)Label the edge 12: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> {12 -> "Hello"}]Label all edges individually: el = EdgeList[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2]]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], EdgeLabels -> Table[el[[i]] -> Subscript["e", i], {i, Length[el]}]]Use any expression as a label: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> {01 -> [image], 12 -> [image], 20 -> [image]}]Use Placed with symbolic locations to control label placement along an edge: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> {12 -> Placed["■■■", p]}, PlotLabel -> p], {p, {"Start", "Middle", "End"}}]Use explicit coordinates to place labels: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> {12 -> Placed["■■■", p]}, PlotLabel -> p, BaselinePosition -> Bottom], {p, {0, 1 / 4, 1 / 3}}]Vary positions within the label: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> {12 -> Placed["■■■", {1 / 2, p}]}, PlotLabel -> p, BaselinePosition -> Bottom], {p, {{0, 0}, {1 / 2, 1 / 2}, {1, 1}}}]Place multiple labels: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> {12 -> Placed[{"lbl1", "lbl2"}, {"Start", "End"}]}]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> {12 -> Placed[{"lbl1", "lbl2", "lbl3"}, {"Start", "Middle", "End"}]}]Use automatic labeling by values through Tooltip and StatusArea: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> Placed["Name", Tooltip]]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeLabels -> Placed["Name", StatusArea]]EdgeShapeFunction (6)Get a list of built-in settings for EdgeShapeFunction: ResourceData["EdgeShapeFunction"]Undirected edges including the basic line: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> "Line"]Lines with different glyphs on the edges: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, {"BoxLine", "DiamondLine", "DotLine"}}]Directed edges including solid arrows: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, ResourceData["EdgeShapeFunction", "FilledArrow"]}]Line arrows: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, ResourceData["EdgeShapeFunction", "UnfilledArrow"]}]Open arrows: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> {{ef, "ArrowSize" -> 0.1}}, PlotLabel -> ef], {ef, ResourceData["EdgeShapeFunction", "CarvedArrow"]}]Specify an edge function for an individual edge: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> {12 -> "DotLine"}]Combine with a different default edge function: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> {12 -> "BoxLine", "DotLine"}]Draw edges by running a program: ef[pts_List, e_] :=
Block[{s = 0.015, g = [image]}, {Arrowheads[{{s, 0.33, g}, {s, 0.67, g}}], Arrow[pts]}]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeShapeFunction -> ef]EdgeShapeFunction can be combined with EdgeStyle: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeStyle -> Blue, EdgeShapeFunction -> (Line[#1]&)]EdgeShapeFunction has higher priority than EdgeStyle: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeStyle -> Blue, EdgeShapeFunction -> ({Red, Line[#1]}&)]EdgeStyle (2)Style all edges: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeStyle -> style, PlotLabel -> style], {style, {Gray, Dashed, Thick}}]Style individual edges: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeStyle -> {12 -> Blue, 01 -> Dashed}]EdgeWeight (2)Specify a weight for all edges: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeWeight -> RandomInteger[5, 3]]WeightedAdjacencyMatrix[%]//MatrixFormUse any numeric expression as a weight: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, EdgeWeight -> {a, b, c}]WeightedAdjacencyMatrix[%]//MatrixFormGraphHighlight (3)Highlight the vertex 1: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> Tiny, GraphHighlight -> {1}]Highlight the edge 23: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> Tiny, GraphHighlight -> {12}]Highlight vertices and edges: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> Tiny, GraphHighlight -> {1, 2, 01, 12}]GraphHighlightStyle (2)Get a list of built-in settings for GraphHighlightStyle: ResourceData["GraphHighlightStyle"]Use built-in settings for GraphHighlightStyle: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, GraphHighlight -> {1, 12}, VertexSize -> Small, GraphHighlightStyle -> #, PlotLabel -> #]& /@ Select[ResourceData["GraphHighlightStyle"], # =!= Automatic&]GraphLayout (5)By default, the layout is chosen automatically: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 10], 2, GraphLayout -> Automatic]Specify layouts on special curves: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 10], 2, GraphLayout -> l, PlotLabel -> l], {l, {"CircularEmbedding", "SpiralEmbedding"}}]Specify layouts that satisfy optimality criteria: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 20], 2, GraphLayout -> l, PlotLabel -> l], {l, {"SpringEmbedding", "SpringElectricalEmbedding", "HighDimensionalEmbedding"}}]VertexCoordinates overrides GraphLayout coordinates: {NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 5], 2, GraphLayout -> "SpringElectricalEmbedding"],
WheelGraph[5, GraphLayout -> "SpringElectricalEmbedding", VertexCoordinates -> Table[{i, i}, {i, 0, 4}]]}Use AbsoluteOptions to extract VertexCoordinates computed using a layout algorithm: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 5], 2]AbsoluteOptions[%, VertexCoordinates]PlotTheme (4)Base Themes (2)Use a common base theme: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, PlotTheme -> "Business"]Use a monochrome theme: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, PlotTheme -> "Monochrome"]Feature Themes (2)Use a large graph theme: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, PlotTheme -> "LargeGraph"]Use a classic diagram theme: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, PlotTheme -> "ClassicDiagram"]VertexCoordinates (3)By default, any vertex coordinates are computed automatically: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2]Extract the resulting vertex coordinates using AbsoluteOptions: AbsoluteOptions[%, VertexCoordinates]Specify a layout function along an ellipse: ellipseLayout[n_, {a_, b_}] := Table[{a Cos[2Pi / n u], b Sin[2Pi / n u]}, {u, 1, n}]Graphics[Point[ellipseLayout[20, {2, 1}]]]Use it to generate vertex coordinates for a graph: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 19], 2, VertexCoordinates -> ellipseLayout[20, {2, 1}]]VertexCoordinates has higher priority than GraphLayout: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 3], 2, VertexCoordinates -> Table[{i, i}, {i, 4}], GraphLayout -> "CircularEmbedding"]VertexLabels (13)Use vertex names as labels: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> "Name"]Label individual vertices: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> {2 -> "one"}]Label all vertices: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> Table[i -> Subscript[v, i], {i, 0, 2}]]Use any expression as a label: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> {1 -> [image], 2 -> [image], 0 -> [image]}, ImagePadding -> 20]Use Placed with symbolic locations to control label placement, including outside positions: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.1, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed["■■■", p], {i, 0, 2}], PlotLabel -> p, ImagePadding -> 20], {p, {Before, After, Below, Above}}]Symbolic outside-corner positions: pl = {{Before, Below}, {After, Below}, {Before, Above}, {After, Above}};Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.1, VertexShapeFunction -> "Square", ImagePadding -> 20, VertexLabels -> Table[i -> Placed["■■■", p], {i, 0, 2}], PlotLabel -> p], {p, pl}]Symbolic inside positions: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.45, VertexLabels -> Table[i -> Placed["■■■", p], {i, 0, 2}], VertexShapeFunction -> "Square", PlotLabel -> p], {p, {Left, Top, Right, Bottom}}]Symbolic inside-corner positions: pl = {{Left, Bottom}, {Right, Bottom}, {Left, Top}, {Right, Top}};Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.45, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed["■■■", p], {i, 0, 2}], PlotLabel -> p], {p, pl}]Use explicit coordinates to place the centers of labels: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.25, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed[[image], p], {i, 0, 2}], PlotLabel -> p, BaselinePosition -> Bottom], {p, {{0, 0}, {1 / 2, 1 / 2}, {1, 1}}}]Place all labels at the upper-right corner of the vertex and vary the coordinates within the label: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.35, VertexShapeFunction -> "Square", VertexLabels -> Table[i -> Placed[[image], {{1, 1}, p}], {i, 0, 2}], PlotLabel -> p, BaselinePosition -> Bottom], {p, {{0, 0}, {1 / 2, 1 / 2}, {1, 1}}}]Place multiple labels: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> {1 -> Placed[{"lbl1", "lbl2"}, {Above, Below}]}]Any number of labels can be used: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> {1 -> Placed[{"lbl1", "lbl2", "lbl3", "lbl4"}, {Above, After, Below, Before}]}]Use the argument Placed to control formatting including Tooltip: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> Placed["Name", Tooltip]]Or StatusArea: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> Placed["Name", StatusArea]]Use more elaborate formatting functions: rotateLabel[lbl_] := Rotate[lbl, 45Degree]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> Table[i -> Placed["xxx", Below, rotateLabel], {i, 0, 2}]]panelLabel[lbl_] := Panel[lbl, FrameMargins -> 0, Background -> StandardYellow]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> Table[i -> Placed["xxx", Center, panelLabel], {i, 0, 2}]]hyperlinkLabel[lbl_] := Hyperlink[lbl, "http://www.wolfram.com"]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexLabels -> Table[i -> Placed["xxx", Center, hyperlinkLabel], {i, 0, 2}]]VertexShape (5)Use any Graphics, Image, or Graphics3D as a vertex shape: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShape -> s, VertexSize -> Medium], {s, {[image], [image], [image]}}]Specify vertex shapes for individual vertices: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShape -> {2 -> [image]}, VertexSize -> Medium]VertexShape can be combined with VertexSize: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> s, VertexShape -> [image], PlotLabel -> s], {s, {Small, Large}}]VertexShape is not affected by VertexStyle: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.2, VertexShape -> [image], VertexStyle -> Blue]VertexShapeFunction has higher priority than VertexShape: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.2, VertexShapeFunction -> "Square", VertexShape -> [image]]VertexShapeFunction (10)Get a list of built-in collections for VertexShapeFunction: ResourceData["VertexShapeFunction"]Use built-in settings for VertexShapeFunction in the "Basic" collection: ResourceData["VertexShapeFunction", "Basic"]Simple basic shapes: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, {"Triangle", "Square", "Rectangle", "Pentagon", "Hexagon", "Octagon"}}]Common basic shapes: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, {"DownTrapezoid", "UpTrapezoid", "Parallelogram", "FiveDown", "Circle", "Diamond", "Star", "Capsule"}}]Use built-in settings for VertexShapeFunction in the "Rounded" collection: ResourceData["VertexShapeFunction", "Rounded"]Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, ResourceData["VertexShapeFunction", "Rounded"]}]Use built-in settings for VertexShapeFunction in the "Concave" collection: ResourceData["VertexShapeFunction", "Concave"]Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> vf, VertexSize -> 0.2, PlotLabel -> vf], {vf, ResourceData["VertexShapeFunction", "Concave"]}]Draw individual vertices: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> { 1 -> "Square"}, VertexSize -> 0.2]Combine with a default vertex function: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> { 1 -> "Square", "Triangle"}, VertexSize -> 0.2]Draw vertices using a predefined graphic: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> (Inset[[image], #]&)]Draw vertices by running a program: vf[{xc_, yc_}, name_, {w_, h_}] :=
Block[{xmin = xc - w, xmax = xc + w, ymin = yc - h, ymax = yc + h},
Polygon[{{xmin, ymin}, {xmax, ymax}, {xmin, ymax}, {xmax, ymin}}]
];NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> vf, VertexSize -> 0.2]VertexShapeFunction can be combined with VertexStyle: vf1[{xc_, yc_}, name_, {w_, h_}] := Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf1]VertexShapeFunction has higher priority than VertexStyle: vf2[{xc_, yc_}, name_, {w_, h_}] := {Red, Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]}NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf2]VertexShapeFunction has higher priority than VertexSize: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexShapeFunction -> "Star", VertexSize -> {1 -> Small, Medium}]VertexShapeFunction has higher priority than VertexShape: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.3, VertexShapeFunction -> "Star", VertexShape -> [image]]VertexSize (8)By default, the size of vertices is computed automatically: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> Automatic]Specify the size of all vertices using symbolic vertex size: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> s, PlotLabel -> s], {s, {Tiny, Small, Medium, Large}}]Use a fraction of the minimum distance between vertex coordinates: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> s, PlotLabel -> s], {s, 0.1, 1, 0.3}]Use a fraction of the overall diagonal for all vertex coordinates: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> {"Scaled", s}, PlotLabel -> {"Scaled", s}], {s, 0.1, 1, 0.3}]Specify size in both the Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> s, PlotLabel -> s], {s, {{0.1, 0.2}, {0.2, 0.1}}}]Specify the size for individual vertices: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> {1 -> 0.2, 2 -> 0.3}]VertexSize can be combined with VertexShapeFunction: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> s, VertexShapeFunction -> "Square", PlotLabel -> s], {s, {0.05, 0.1, 0.2}}]VertexSize can be combined with VertexShape: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> s, VertexShape -> [image], PlotLabel -> s], {s, {0.1, 0.2, 0.4}}]VertexStyle (5)Style all vertices: Table[NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexStyle -> style, VertexSize -> 0.3, PlotLabel -> style], {style, {Yellow, EdgeForm[Dashed]}}]Style individual vertices: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexStyle -> {1 -> Blue, 2 -> Red}, VertexSize -> 0.2]VertexShapeFunction can be combined with VertexStyle: vf1[{xc_, yc_}, name_, {w_, h_}] := Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf1]VertexShapeFunction has higher priority than VertexStyle: vf2[{xc_, yc_}, name_, {w_, h_}] := {Red, Rectangle[{xc - w, yc - h}, {xc + w, yc + h}]}NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.2, VertexStyle -> Blue, VertexShapeFunction -> vf2]VertexStyle can be combined with BaseStyle: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexStyle -> LightBlue, BaseStyle -> EdgeForm[Dotted], VertexSize -> 0.2]VertexStyle has higher priority than BaseStyle: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexStyle -> LightBlue, BaseStyle -> Gray, VertexSize -> 0.2]VertexShape is not affected by VertexStyle: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexSize -> 0.2, VertexShape -> [image], VertexStyle -> Blue]VertexWeight (2)Set the weight for all vertices: WheelGraph[4, VertexWeight -> {2, 3, 4, 5}]AnnotationValue[{%, 1}, VertexWeight]Use any numeric expression as a weight: NestGraph[Mod[# ^ 2 + 1, 5]&, Range[0, 2], 2, VertexWeight -> {a, b, c}]AnnotationValue[{%, 1}, VertexWeight]Applications (2)Generate a network of "nearby" functions in the Wolfram Language: NestGraph[WolframLanguageData[#, EntityProperty["WolframLanguageSymbol", "RelatedSymbols"]]&, Entity["WolframLanguageSymbol", "Nest"], 2, VertexLabels -> "Name"]Visualize file systems: NestGraph[FileNames["*", #] &, $InstallationDirectory, 3, VertexLabels -> Placed["Name", Tooltip]]Properties & Relations (5)Use VertexCount and EdgeCount to count vertices and edges: g = NestGraph[Mod[# ^ 2 + 1, 10]&, {1, 2, 3, 4, 5}, 2]{VertexCount[g], EdgeCount[g]}Use VertexList and EdgeList to enumerate vertices and edges in standard order: g = NestGraph[WordData[#, "Synonyms", "List"] &, "tree", 2]{VertexList[g], EdgeList[g]}Compute the AdjacencyMatrix from a graph: g = NestGraph[f, x, 3];AdjacencyMatrix[g]//MatrixFormNeighborhoodGraph can be found by using NestGraph: g = GridGraph[{4, 4}];g1 = NeighborhoodGraph[g, 1, 2]g2 = NestGraph[Rest@VertexOutComponent[g, #, 1]&, 1, 2, DirectedEdges -> False]//SimpleGraphIsomorphicGraphQ[g1, g2]Generate a tree of nested functions as lists: NestList[{f[#], g[#]}&, x, 3]Generate as a graph: NestGraph[{f[#], g[#]}&, x, 3, VertexLabels -> "Name"]Neat Examples (1)Create a nested graph showing closest same-length words starting with "math": word = "math";words = Select[WordList[], StringLength[#] == StringLength[word]&];SmallestEditDistances[word_] := Nearest[Complement[words, {word}], word]HighlightGraph[NestGraph[SmallestEditDistances, word, 2, VertexLabels -> All], word]Related GuidesHistory
Wolfram Research (2015), NestGraph, Wolfram Language function, https://reference.wolfram.com/language/ref/NestGraph.html.
TextWolfram Research (2015), NestGraph, Wolfram Language function, https://reference.wolfram.com/language/ref/NestGraph.html. CMSWolfram Language. 2015. "NestGraph." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NestGraph.html. APAWolfram Language. (2015). NestGraph. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NestGraph.html BibTeX@misc{reference.wolfram_2026_nestgraph, author="Wolfram Research", title="{NestGraph}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/NestGraph.html}", note=[Accessed: 12-November-2026]} BibLaTeX@online{reference.wolfram_2026_nestgraph, organization={Wolfram Research}, title={NestGraph}, year={2015}, url={https://reference.wolfram.com/language/ref/NestGraph.html}, note=[Accessed: 12-November-2026]} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |