Humans are social animals and, therefore, social connections are very important. We can view these connections and the persons involved as a network. We represent networks or a subset as a graph. A graph consists of nodes or points connected by edges or lines. Graphs can be directed or undirected—the lines can be arrows.
We will use the Facebook SPAN data, which we also used in the Visualizing network graphs with hive plots recipe. Facebook started out small in 2004, but it has more than a billion users as of 2015. The data doesn't include all the users, but it is still enough for a decent analysis. The following equations describe the density of undirected (8.1) and directed (8.2) graphs:
In these equations, n is the number of nodes and m is the number of edges.
The code is in the net_density.ipynb
file in this book's code bundle:
import networkx as nx import dautil as dl
fb_file = dl.data.SPANFB().load() G = nx.read_edgelist(fb_file, create_using=nx.Graph(), nodetype=int)
density()
function as follows:print('Density', nx.density(G))
We get the following density:
Density 0.010819963503439287
density()
function documented at https://networkx.github.io/documentation/latest/reference/generated/networkx.classes.function.density.html (retrieved October 2015)