| Graph | Graph Drawing | Drawing Directed Graphs | Drawing Undirected Graphs (2D 3D) |

Algorithms for Drawing Undirected Graphs

Mainly, two kinds of methods are employed to draw undirected graphs by us.

Force-Directed Algorithms
Force-directed methods define a force model (or an energy function) similar to the system of springs or celestial bodies, and acquire the nice layout by minimizing the function gradually.

An interesting video about force-based graph drawing algorithm:

Typically, the force-directed algorithms include Eades heuristic,Kamada-Kawai heuristic, Fruchterman-Reingold heuristic and Harel heuristic, etc.

The simplicity and flexibility of force-directed algorithms provide a solid foundation to solve the general graph drawing problems. However, it requires O(n^2) at least, and just is fit for the graphs with less than 50 vertices.

Spectral Graph Drawing


Spectral graph drawing computes the eigenvectors of the matrix associated with graphs to acquire the nice layouts. Two typical matrices are often adopted: adjacent matrix and Laplacian matrix. For instance, the energy function dealing with the Laplacian matrix is shown:

The running speed of the spectral algorithms is extremely fast; however, the resulting drawings maybe too dense since there is no repulsive force preventing the vertices of the graphs from becoming too close.

Furthermore, we adopt the multi-level techniques to solve the problems on drawing large graphs. Some methods, such as quad-tree/oct-tree decomposition, constraint-normalization, are adopted to speed up the running speed. Please see my related papers for more details.

Two-dimensional lagre graph embedding algorithm

Three-dimensional large graph embedding algorihtm