# RandomGraph

RandomGraph[{n,m}]

gives a pseudorandom graph with n vertices and m edges.

RandomGraph[{n,m},k]

gives a list of k pseudorandom graphs.

RandomGraph[gdist,]

samples from the random graph distribution gdist.

# Details and Options • RandomGraph[{n,m}] is equivalent to .
• RandomGraph gives a different sequence of pseudorandom graphs whenever you run the Wolfram Language. By using SeedRandom, you can get a repeatable sequence.
• Vertices are taken to be integers 1, , n.
• A method option to SeedRandom can be given to specify the pseudorandom generator used.
• RandomGraph[dist,{n1,n2,}] gives an n1×n2× array of graphs.
• RandomGraph has the same options as Graph.

# Examples

open allclose all

## Basic Examples(2)

Generate a random graph on 5 vertices and 6 edges:

Simulate a graph property distribution:

## Scope(12)

Generate a pseudorandom graph with a given number of vertices and edges:

A directed pseudorandom graph:

Generate arrays of different sizes and dimensions:

An array of graphs:

Generate random graphs distributed according to the BarabasiAlbert model:

Generate random graphs that are Bernoulli distributed:

Generate random graphs that are uniformly distributed:

Generate random graphs with given degree sequence:

Generate random spatial graphs:

Generate random graphs distributed according to the Price model:

Generate random graphs distributed according to the WattsStrogatz model:

Generate random graphs of large size:

## Options(70)

### DirectedEdges(1)

By default, an undirected graph is generated:

Use to generate a directed graph:

### EdgeLabels(6)

Label the edge 12:

Label all edges:

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:

### GraphHighlight(3)

Highlight the vertex 1:

Highlight the edge 23:

Highlight vertices and edges:

### GraphHighlightStyle(2)

Get a list of built-in settings for GraphHighlightStyle:

Use built-in settings for GraphHighlightStyle:

### GraphLayout(4)

By default, the layout is chosen automatically:

Specify layouts on special curves:

Specify layouts that satisfy optimality criteria:

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 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(9)

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 by running a program:

VertexShapeFunction can be combined with VertexStyle:

VertexShapeFunction has higher priority than VertexStyle:

VertexShapeFunction can be combined with VertexShape:

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(4)

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:

## Applications(3)

Generate random data for a property of a graph distribution and compare its histogram to the PDF:

Verify that the degree for a vertex in a Bernoulli graph follows a binomial distribution:

Simulate interaction networks, knowing the number of interactions of each node within the group:

## Properties & Relations(10)

RandomGraph uses integer vertices:

Use VertexReplace to replace vertices in the graph:

Use SeedRandom to get repeatable random graphs:

Use BlockRandom to block one use of RandomGraph from affecting others:

RandomVariate generates variates from probability distributions:

RandomInteger generates uniform discrete random variates:

RandomReal generates uniform continuous variates:

RandomChoice generates random choices with replacement from a list:

RandomSample generates random choice without replacement from a list:

RandomPrime generates a random prime number:

RandomImage generates a random image:

## Possible Issues(1)

The number of edges of a simple graph on n vertices is less than or equal to : RandomGraph[{n,Binomial[n,2]}] always gives the complete graph with n vertices:

## Neat Examples(1)

Generate random star constellations: