I got this code which allows me to draw a graph like the posted below
import networkx as nx
import pylab as plt
from networkx.drawing.nx_agraph import graphviz_layout
G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)
nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
node_color=range(len(G)),
prog='dot')
plt.show()
Question is, how could i draw the graph with nodes which:
- Use white background color
- Have labels inside
- Have directed arrows
- Optionally the arrows show a certain weight
- Are arranged nicely either automatically or manually
Something similar to the below image
As you can see in that image, nodes are aligned really nicely