NetworkX 1.0 RC1 Available for Scientific Computing with Python

NetworkX with GeeXLab - Fruchterman-Reingold layout

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. An update (1.0 RC1) has been released few days ago and you can grab the package HERE.

I took advantage of this update to test NetworkX with GeeXLab. I created a simple graph (path_graph) and I played with Fruchterman-Reingold algorithm to position graph’s nodes.

Fruchterman-Reingold is an algorithm that attempts to produce aesthetically pleasing, two-dimensional pictures of graphs by doing simplified simulations of physical systems. A more detailed definition can be found HERE.

The Fruchterman-Reingold Algorithm is a force-directed layout algorithm. The idea of a force directed layout algorithm is to consider a force between any two nodes. In this algorithm, the nodes are represented by steel rings and the edges are springs between them. The attractive force is analogous to the spring force and the repulsive force is analogous to the electrical force. The basic idea is to minimize the energy of the system by moving the nodes and changing the forces between them. For more details refer to the Force Directed algorithm.

I’m absolutly not an expert in graph, I’m rather even a newbie, but it’s cool to see how we can play with a scientific library in GeeXLab. Thanks a lot Python! Just for the fun, it would be nice to see such a NetworkX graph rendered with cool lighting and other eye catching post processing effects. I’ll do it shortly, as soon as the alpha version of GeeXLab will be out…

NetworkX with GeeXLab - Fruchterman-Reingold layout

NetworkX with GeeXLab - Fruchterman-Reingold layout

NetworkX is based on NumPy (Numerical Python). NumPy is the fundamental package needed for scientific computing with Python. You can get the last version (1.3.0) HERE.