ButterflyGraph

gives the order-n butterfly graph.

ButterflyGraph[n,b]

gives the base-b order-n butterfly graph.

Details and Options

• ButterflyGraph yields a Graph object for positive integers n and b.
• ButterflyGraph[n,b] is a graph with (n+1)bn vertices whose vertices are pairs {w,i} where w is a base-b string of length n and i is an integer in the range 0 through n. For each i, there is an edge from {w,i} to {,i+1} where w and are identical in all bits with the possible exception of the (i +1) bit.
• is equivalent to ButterflyGraph[n,2].
• ButterflyGraph takes the same options as Graph.

Examples

open allclose all

Basic Examples(2)

Binary butterfly graphs:

Base-b butterfly graphs:

Options(80)

AnnotationRules(2)

Specify an annotation for vertices:

Edges:

DirectedEdges(1)

By default, an undirected graph is generated:

Use to generate a directed graph:

EdgeLabels(7)

Label the edge 14:

Label all edges individually:

Use any expression as a label:

Use Placed with symbolic locations to control label placement along an edge:

Use explicit coordinates to place labels:

Vary positions within the label:

Place multiple labels:

Use automatic labeling by values through Tooltip and StatusArea:

EdgeShapeFunction(6)

Get a list of built-in settings for EdgeShapeFunction:

Undirected edges including the basic line:

Lines with different glyphs on the edges:

Directed edges including solid arrows:

Line arrows:

Open arrows:

Specify an edge function for an individual edge:

Combine with a different default edge function:

Draw edges by running a program:

EdgeShapeFunction can be combined with EdgeStyle:

EdgeShapeFunction has higher priority than EdgeStyle:

EdgeStyle(2)

Style all edges:

Style individual edges:

EdgeWeight(2)

Specify a weight for all edges:

Use any numeric expression as a weight:

GraphHighlight(3)

Highlight the vertex 1:

Highlight the edge 12:

Highlight the vertices and edges:

GraphHighlightStyle(2)

Get a list of built-in settings for GraphHighlightStyle:

Use built-in settings for GraphHighlightStyle:

GraphLayout(5)

By default, the layout is chosen automatically:

Specify layouts on special curves:

Specify layouts that satisfy optimality criteria:

VertexCoordinates overrides GraphLayout coordinates:

Use AbsoluteOptions to extract VertexCoordinates computed using a layout algorithm:

PlotTheme(4)

Base Themes(2)

Use a common base theme:

Use a monochrome theme:

Feature Themes(2)

Use a large graph theme:

Use a classic diagram theme:

VertexCoordinates(3)

By default, any vertex coordinates are computed automatically:

Extract the resulting vertex coordinates using AbsoluteOptions:

Specify a layout function along an ellipse:

Use it to generate vertex coordinates for a graph:

VertexCoordinates has higher priority than GraphLayout:

VertexLabels(13)

Use vertex names as labels:

Label individual vertices:

Label all vertices:

Use any expression as a label:

Use Placed with symbolic locations to control label placement, including outside positions:

Symbolic outside corner positions:

Symbolic inside positions:

Symbolic inside corner positions:

Use explicit coordinates to place the center of the labels:

Place all labels at the upper-right corner of the vertex and vary the coordinates within the label:

Place multiple labels:

Any number of labels can be used:

Use the argument to Placed to control formatting including Tooltip:

Or StatusArea:

Use more elaborate formatting functions:

VertexShape(5)

Use any Graphics, Image, or Graphics3D as a vertex shape:

Specify vertex shapes for individual vertices:

VertexShape can be combined with VertexSize:

VertexShape is not affected by VertexStyle:

VertexShapeFunction has higher priority than VertexShape:

VertexShapeFunction(10)

Get a list of built-in collections for VertexShapeFunction:

Use built-in settings for VertexShapeFunction in the "Basic" collection:

Simple basic shapes:

Common basic shapes:

Use built-in settings for VertexShapeFunction in the "Rounded" collection:

Use built-in settings for VertexShapeFunction in the "Concave" collection:

Draw individual vertices:

Combine with a default vertex function:

Draw vertices using a predefined graphic:

Draw vertices by running a program:

VertexShapeFunction can be combined with VertexStyle:

VertexShapeFunction has higher priority than VertexStyle:

VertexShapeFunction can be combined with VertexSize:

VertexShapeFunction has higher priority than VertexShape:

VertexSize(8)

By default, the size of vertices is computed automatically:

Specify the size of all vertices, using symbolic vertex size:

Use a fraction of the minimum distance between vertex coordinates:

Use a fraction of the overall diagonal for all vertex coordinates:

Specify size in both the and directions:

Specify the size for individual vertices:

VertexSize can be combined with VertexShapeFunction:

VertexSize can be combined with VertexShape:

VertexStyle(5)

Style all vertices:

Style individual vertices:

VertexShapeFunction can be combined with VertexStyle:

VertexShapeFunction has higher priority than VertexStyle:

VertexStyle can be combined with BaseStyle:

VertexStyle has higher priority than BaseStyle:

VertexShape is not affected by VertexStyle:

VertexWeight(2)

Set the weight for all vertices:

Use any numeric expression as a weight:

Applications(6)

The GraphCenter of butterfly graphs:

Highlight the vertex eccentricity path:

Highlight the radius path:

Highlight the diameter path:

Highlight the vertex degree for ButterflyGraph:

Highlight the closeness centrality:

Highlight the eigenvector centrality:

Properties & Relations(3)

ButterflyGraph[n,b] has vertices:

ButterflyGraph[n,b] has edges:

ButterflyGraph is Eulerian:

Wolfram Research (2010), ButterflyGraph, Wolfram Language function, https://reference.wolfram.com/language/ref/ButterflyGraph.html.

Text

Wolfram Research (2010), ButterflyGraph, Wolfram Language function, https://reference.wolfram.com/language/ref/ButterflyGraph.html.

CMS

Wolfram Language. 2010. "ButterflyGraph." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ButterflyGraph.html.

APA

Wolfram Language. (2010). ButterflyGraph. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ButterflyGraph.html

BibTeX

@misc{reference.wolfram_2022_butterflygraph, author="Wolfram Research", title="{ButterflyGraph}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/ButterflyGraph.html}", note=[Accessed: 10-June-2023 ]}

BibLaTeX

@online{reference.wolfram_2022_butterflygraph, organization={Wolfram Research}, title={ButterflyGraph}, year={2010}, url={https://reference.wolfram.com/language/ref/ButterflyGraph.html}, note=[Accessed: 10-June-2023 ]}