In [1]:
# import libraries (including our short d3_lib script)
from IPython.core.display import display, HTML
import d3_lib, random

In [2]:
# construct graph as a set of nodes and links between them
n_nodes = 30
p_edge = 0.05
graph = {"nodes": [], "links": []}
for i in range(n_nodes):
    graph["nodes"].append( {"name": "i" + str(i), "group": int(random.uniform(1,11))} )
for i in range(n_nodes):
    for j in range(n_nodes):
        if random.uniform(0,1) < p_edge and i != j:
            graph["links"].append( {"source": i, "target": j,
                             "value": random.uniform(0.5,3)} )

In [3]:
# visualize as force-directed graph in D3
display(HTML(d3_lib.set_styles(['force_directed_graph']) + \
      '<script src="lib/d3/d3.min.js"></script>' + \
      d3_lib.draw_graph('force_directed_graph', {'data': graph})))



In [4]:
display(HTML(d3_lib.draw_graph('force_directed_graph', {'data': graph})))