Skip to content

Instantly share code, notes, and snippets.

@luqmaan
Created July 25, 2013 15:24
Show Gist options
  • Save luqmaan/6080844 to your computer and use it in GitHub Desktop.
Save luqmaan/6080844 to your computer and use it in GitHub Desktop.
import networkx as nx
def draw_graph(G):
from matplotlib import pyplot
pos = nx.graphviz_layout(G, prog='dot')
labels = dict((n, '%d' % n) for n, d in G.nodes(data=True))
edge_labels = dict(((u, v,), d['op']) for u, v, d in G.edges(data=True))
nx.draw_networkx(G, pos=pos, labels=labels, node_size=1000,
width=2, node_color='white', edge_color='blue')
nx.draw_networkx_edge_labels(G, pos=pos, edge_labels=edge_labels)
pyplot.show()
def make_graph(levels):
G = nx.DiGraph()
G.add_node(1)
leafs = [1]
for level in xrange(levels):
print level
newleafs = []
for node in leafs:
right = node + 5
left = node * 3
G.add_edge(node, right, {"op": "+5"})
G.add_edge(node, left, {"op": "*3"})
newleafs.append(right)
newleafs.append(left)
leafs = newleafs
draw_graph(G)
draw(3)
@bulatb
Copy link

bulatb commented Jul 29, 2013

Where do you define the draw called on line 33?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment