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})))