igraph (version 0.4.4)

graph.constructors: Various methods for creating graphs

Description

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

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
{the graph will be directed and a matrix element gives the number of edges between two vertex.} undirected

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

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:

{in increasing order of number of nodes;} {for a fixed number of nodes, in increasing order of the number of edges;} {for fixed numbers of nodes and edges, in increasing order of the degree sequence, for example 111223 < 112222;} {for fixed degree sequence, in increasing number of automorphisms.}

Examples

Run this code
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))

Run the code above in your browser using DataCamp Workspace