Creating (small) graphs via a simple interface
This function is useful if you want to create a small (named) graph quickly, it works for both directed and undirected graphs.
- The formulae giving the structure of the graph, see details below.
graph.formula is very handy for creating small graphs quickly.
You need to supply one or more R expressions giving the structure of
the graph. The expressions consist of vertex names and edge
operators. An edge operator is a sequence of
If all edge operators consist of only
Let us see some simple examples. Without arguments the function creates an empty graph: graph.formula()
A simple undirected graph with two vertices called
Remember that the length of the edges does not matter, so we could have written the following, this creates the same graph: graph.formula( A-----B )
If you have many disconnected components in the graph, separate them with commas. You can also give isolate vertices. graph.formula( A--B, C--D, E--F, G--H, I, J, K )
In directed graphs, edges will be created only if the edge operator
includes a arrow head (
Mutual edges can be also created with a simple edge operator:
graph.formula( A +-+ B +---+ C ++ D + E)
Note again that the length of the edge operators is arbitrary,
If the vertex names include spaces or other special characters then
you need to quote them:
graph.formula( "this is" +- "a silly" -+ "graph here" )
You can include any character in the vertex names this way, even
See more examples below.
- A new graph object.
graph for more general graph creation methods.
# A simple undirected graph g <- graph.formula( Alice-Bob-Cecil-Alice, Daniel-Cecil-Eugene, Cecil-Gordon ) g # Another undirected graph, ":" notation g2 <- graph.formula( Alice-Bob:Cecil:Daniel, Cecil:Daniel-Eugene:Gordon ) g2 # A directed graph g3 <- graph.formula( Alice +-+ Bob --+ Cecil +-- Daniel, Eugene --+ Gordon:Helen ) g3 # A graph with isolate vertices g4 <- graph.formula( Alice -- Bob -- Daniel, Cecil:Gordon, Helen ) g4 V(g4)$name # "Arrows" can be arbitrarily long g5 <- graph.formula( Alice +---------+ Bob ) g5 # Special vertex names g6 <- graph.formula( "+" -- "-", "*" -- "/", "%%" -- "%/%" ) g6