These functions are similar to the create_* functions, but include some element of randomisation. They are particularly useful for creating a distribution of networks for exploring or testing network properties.

generate_random(n, p = 0.5, directed = FALSE, with_attr = TRUE)

generate_smallworld(n, p = 0.05, width = 2, directed = FALSE)

generate_scalefree(n, p = 1, directed = FALSE)

generate_permutation(object, with_attr = TRUE)




  • A single integer, e.g. n = 10, a one-mode network will be created.

  • A vector of two integers, e.g. n = c(5,10), a two-mode network will be created.

  • A migraph-compatible object, a network of the same dimensions will be created.


Proportion of possible ties in the network that are realised or, if integer greater than 1, the number of ties in the network.


Whether to generate network as directed. By default FALSE.


Logical whether any attributes of the object should be retained. By default TRUE.


Integer specifying the width or breadth of the ring or branches.


An object of a migraph-consistent class:

  • matrix (adjacency or incidence) from {base} R

  • edgelist, a data frame from {base} R or tibble from {tibble}

  • igraph, from the {igraph} package

  • network, from the {network} package

  • tbl_graph, from the {tidygraph} package


By default an igraph object is returned, but this can be coerced into other types of objects using as_matrix(), as_tidygraph(), or as_network().


  • generate_random: Generates a random network with a particular probability.

  • generate_smallworld: Generates a small-world structure following the lattice rewiring model.

  • generate_scalefree: Generates a scale-free structure following the preferential attachment model.

  • generate_permutation: Generates a permutation of the original network using a Fisher-Yates shuffle on both the rows and columns (for a one-mode network) or on each of the rows and columns (for a two-mode network).


Erdős, Paul, and Alfréd Rényi. (1959). "On Random Graphs I" Publicationes Mathematicae. 6: 290–297.

Watts, Duncan J., and Steven H. Strogatz. 1998. “Collective Dynamics of ‘Small-World’ Networks.” Nature 393(6684):440–42. doi:10.1038/30918 .

Barabási, Albert-László, and Réka Albert. 1999. “Emergence of Scaling in Random Networks.” Science 286(5439):509–12. doi:10.1126/science.286.5439.509 .

See also


Other makes: create, read


autographr(generate_random(12, 0.4)) +
autographr(generate_random(c(6, 6), 0.4))

autographr(generate_smallworld(12, 0.025)) +
autographr(generate_smallworld(12, 0.25)) +
autographr(generate_smallworld(c(6,6), 0.025))

autographr(generate_scalefree(12, 0.25)) +
autographr(generate_scalefree(12, 1.25))

autographr(generate_scalefree(c(12,6), 0.25)) /
autographr(generate_scalefree(c(12,6), 1.25))

autographr(mpn_elite_usa_advice) +