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.
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)
- 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.
- A square adjacency matrix.
- Logical, if TRUE a directed graph will be
created. Note that for while most constructors the default is TRUE,
graph.ringit is FALSE. For
- The number of vertices in the graph for most functions.
graphthis 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
graph.adjacencythe possible values of this argument are
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
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:
- Every function documented here returns a
graph.lattice(dimvector = NULL, length = NULL, dim = NULL, nei = 1, directed = FALSE, mutual = FALSE, circular = FALSE, ...)
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))