Graph Explorer

Select a graph to load. For loading files, only graphml formats have been tested. However, it should be able to process: edgelist, pajek, ncol, lgl, graphml, dimacs, graphdb, gml, dl. It can take a while to load larger graphs, particularly ones with lots of attributes. Zipped graphs (humans) do not seem to load correctly at this time.

Select a graph to load. Beware that human graphs are huge and will likely take hours to download.

The Erdos-Renyi graph has each edge independently chosen with probability p.

A K-regular graph is a graph where every vertex has degree k.

A ring graph is a cycle.

The complete graph is the graph containing all possible edges.

The complete bipartite graph is the bipartite graph containing all possible edges between the parts.

The random bipartite graph is the bipartite graph containing each of the possible edges between the parts independently with probability p.

Generate a regular tree.

The stochastic block model has the vertices grouped, with the edge probabilities defined by the kxk P matrix. The probability of an edge between vertices depends only on the groups they belong to. In this implementation, the entries of P are uniform [0,1], unless 'Diagonally Dominant' is chosen, in which case the off-diagonals are U[0,0.5] and the diagonals are U[0.5,1]. The blocks are of (roughly) equal size.

At each time step an edge is added. This vertex is 'cited': connected to ambs vertices chosen uniformly at random. For each cited vertex v:

1. We generate two random number, x and y, that are geometrically distributed with means p/(1-p) and rp(1-rp). (p is ‘fw.prob’, r is ‘bw.factor’.) The new vertex cites x outgoing neighbors and y incoming neighbors of v, from those which are not yet cited by the new vertex. If there are less than x or y such vertices available then we cite all of them.

2. The same procedure is applied to all the newly cited vertices.

From the 'igraph' help page:

A Kautz graph is a labeled graph, vertices are labeled by strings of length ‘n+1’ above an alphabet with ‘m+1’ letters, with the restriction that every two consecutive letters in the string must be different. There is a directed edge from a vertex ‘v’ to another vertex ‘w’ if it is possible to transform the string of ‘v’ into the string of ‘w’ by removing the first letter and appending a letter to it.

From the 'igraph' help page:

A de Bruijn graph represents relationships between strings. An alphabet of ‘m’ letters are used and strings of length ‘n’ are considered. A vertex corresponds to every possible string and there is a directed edge from vertex ‘v’ to vertex ‘w’ if the string of ‘v’ can be transformed into the string of ‘w’ by removing its first letter and appending a letter to it.

Please note that the graph will have ‘m’ to the power ‘n’ vertices and even more edges, so probably you don't want to supply too big numbers for ‘m’ and ‘n’.

Each time a new vertex is added it creates a number of links to old vertices and the probability that an old vertex is cited depends on its in-degree (preferential attachment) and age. The probability of connecting an old vertex to the new one is proportional to:

(deg.coef k[i]^pa.exp + zero.deg.appeal)(age.coef l[i]^aging.exp + zero.deg.appeal)

where k and l are the in degree and age. See the help page for 'sample_pa_age' in the 'igraph' package

At each time step a new vertex is added and m new edges are added (uniformly at random if citation is FALSE, otherwise from the new vertex to a uniformly chosen old vertex.

First n points are generated uniformly on a square (or torus). An edge is set between any pair of points of distance at most radius. If 'Keep Coords' is true, the coordinates are set as vertex attributes 'x' and 'y'.

A star graph is a central vertex of degree n-1 and n-1 vertices of degree 1 connected to it.

A star graph union a cycle.

A set of famous graphs appearing in the literature. See the help page for 'make_graph' in the 'igraph' package.

A set of graphs appearing in the book 'An Atlas of Graphs', Roland C. Read and Robin J. Wilson. This is all undirected graphs with up to seven vertices. See the help page for 'graph_from_atlas' in the 'igraph' package. The graph number '0' which is the empty graph on zero vertices is not an option in this tool.

A small world graph. A lattice is created with dimension 'dim', number of vertices along each axis of 'size' and neighborhood width 'nei'. Then edges are rewired with probability 'p'. Note this graph is always undirected. Note that the number of vertices, is size^dim, so be careful there. While the approach can produce loops and multiple edges, this implementation removes them, returning a simplified version of the graph.

This is a stochastic algoritm that adds a vertex with each discrete time step. The new vertex initiates m edges to vertices with probability P[i]~d[i]^power+zero.appeal. Here d[i] is the in-degree of vertex i

Click the parameters button to adjust the parameters of the model. Then click 'Generate' to generate the graph

Clicking on `Plotting Parameters' opens/closes a menu of options for the plot.

Plotting the graph may take a long time unless the fast plotting option is checked.

The graph, edge and vertex attributes.

Graph Attributes and Statistics

Vertex Attributes

Statistics of the attributes.

Plots of the attributes.

Edge Attributes

Statistics of the attributes.

Plots of the attributes.

Plot the graph and some of its attributes

Select the tab to plot in the plane or to plot the adjacency matrix as an image.

Two dimensional plots

Click on a vertex to view values.


The adjacency matrix of the graph

Compute various graph invariants.

Clicking on 'Select Invariants' opens/closes a selector to choose the invariants to compute.

Note that some invariants (clique number for example) may take a very long time on even moderate sized graphs

Community structure in the graph.

Click on a vertex to view values.


Compare All Communities

This computes all the community structures currently implemented. This will take a while to compute (see upper right corner of the page), and will show a heatmap of a comparison between the communities.

This uses the variation of information index of Meila, Journal of Multivariate Analysis, 98, 2007, 873-895.

To the right of a designator of the community algorithm is a number indicating the number of communities found by the given algorithm.

Depending on your browser, the gray levels may appear a bit off. The diagonal should be pure white, and the matrix symmetric. Variations from this are an artefact of the display.

Heatmap comparison

Community Names

Laplac: Laplacian embedding + Mclust.

RDPG: RDPG embedding + Mclust.

t-SNE: t-SNE embedding + Mclust.

Fast: fast greedy.

Edge: edge betweenness.

Walk: walktrap.

LEigen: leading eigenvector.

LabelP: label progagation.

SpinG: spinglass.

MulitL: multilevel.

InfoM: infomap.