# graph.constructors

##### Various methods for creating graphs

These method can create various (mostly regular) graphs: empty graphs, graphs with the given edges, graphs from adjacency matrices, star graphs, lattices, rings, trees.

- Keywords
- graphs

##### Usage

```
graph.empty(n=0, directed=TRUE)
graph(edges, n=max(edges)+1, directed=TRUE)
graph.adjacency(adjmatrix, mode="directed", weighted=NULL)
graph.star(n, mode = "in", center = 0)
graph.lattice(dimvector, nei = 1, directed = FALSE, mutual = FALSE,
circular = FALSE)
graph.lattice(length, dim, nei = 1, directed = FALSE, mutual = FALSE,
circular = FALSE)
graph.ring(n, directed = FALSE, mutual = FALSE, circular=TRUE)
graph.tree(n, children = 2, mode="out")
graph.full(n, directed = FALSE, loops = FALSE)
graph.atlas(n)
graph.edgelist(el, directed=TRUE)
graph.data.frame(d, directed=TRUE)
graph.extended.chordal.ring(n, w)
```

##### Arguments

- edges
- Numeric vector defining the edges, the first edge points from the first element to the second, the second edge from the third to the fourth, etc.
- adjmatrix
- A square adjacency matrix.
- directed
- Logical, if TRUE a directed graph will be
created. Note that for while most constructors the default is TRUE,
for
`graph.lattice`

and`graph.ring`

it is FALSE. For`graph.star`

the`mode`

argument sh - n
- The number of vertices in the graph for most functions.
For

`graph`

this parameter is ignored if there is a bigger vertex id in`edges`

. This means that for this function it is safe to supply zero here if the vertex with - mode
- For
`graph.adjacency`

the possible values of this argument are`directed`

`undirected`

##### Details

All these functions create graphs in a deterministic way.

`graph.empty`

is the simplest one, this creates an empty graph.

`graph`

creates a graph with the given edges.

`graph.adjacency`

creates a graph from an adjacency matrix.

`graph.star`

creates a star graph, in this every single vertex is
connected to the center vertex and nobody else.

`graph.lattice`

is a flexible function, it can create lattices of
arbitrary dimensions, periodic or unperiodic ones.

`graph.ring`

is actually a special case of `graph.lattice`

,
it creates a one dimensional circular lattice.

`graph.tree`

creates regular trees.

`graph.full`

simply creates full graphs.

`graph.atlas`

creates graphs from the book An Atlas of Graphs by
Roland C. Read and Robin J. Wilson. The atlas contains all undirected
graphs with up to seven vertices, numbered from 0 up to 1252. The
graphs are listed:

##### Value

- Every function documented here returns a
`graph`

object.

##### synopsis

graph.lattice(dimvector = NULL, length = NULL, dim = NULL, nei = 1, directed = FALSE, mutual = FALSE, circular = FALSE, ...)

##### item

- weighted
- center
- dimvector
- nei
- mutual
- circular
- length
- dim
- children
- loops
- graph
- el
- d
- w

##### code

`i+w[ij]`

##### sQuote

`W`

`W`

`W`

##### Examples

```
g1 <- graph.empty()
g2 <- graph( c(1,2,2,3,3,4,5,6), directed=FALSE )
adjm <- matrix(sample(0:1, 100, replace=TRUE, prob=c(0.9,0.1)), nc=10)
g3 <- graph.adjacency( adjm )
adjm <- matrix(sample(0:5, 100, replace=TRUE,
prob=c(0.9,0.02,0.02,0.02,0.02,0.02)), nc=10)
g4 <- graph.adjacency(adjm, weighted=TRUE)
E(g4)$weight
g5 <- graph.star(10, mode="out")
g6 <- graph.lattice(c(5,5,5))
g7 <- graph.lattice(length=5, dim=3)
g8 <- graph.ring(10)
g9 <- graph.tree(10, 2)
g10 <- graph.full(5, loops=TRUE)
g11 <- graph.atlas(sample(0:1252, 1))
el <- matrix( c("foo", "bar", "bar", "foobar"), nc=2, byrow=TRUE)
g12 <- graph.edgelist(el)
d <- as.data.frame(el)
d$weight <- 1:2
g13 <- graph.data.frame(d)
g14 <- graph.extended.chordal.ring(15, matrix(c(3,12,4,7,8,11), nr=2))
```

*Documentation reproduced from package igraph, version 0.4.4, License: GPL version 2 or later (June, 1991)*