free and open-source Python module for analysis and visualization of graphs


The digital age has seen a proliferation of networks: from the internet, to the web, to social networks, to citation networks. With the availability of new network datasets, the research community increasingly applied the tools of graph theory to analyze them. Networks can be classified, for instance, by the asymptotic behavior of their degree distributions. Those whose distributions have a power law tail are known as scale-free networks; they tend to have a small fraction of nodes that are very highly connected.

The NetworkX Python module offers many methods for building, editing, and analyzing graphs. It implements numerous graph-theoretic algorithms for examining connectivity, degree distribution, clustering, etc. NetworkX focuses on analysis, relying on external visualization software such as matplotlib, Graphviz, and Bokeh for layout and rendering.

Any wiki can be thought of as a directed graph; each entry is a node and internal links between entries are edges. Below is a depiction of the graph of the wiki. The graph was constructed and analyzed with NetworkX and visualized with Graphviz. Note the centrality of Linux and Python!