import networkx as nx,pylab as pl
g=nx.MultiDiGraph(); pl.figure(figsize=(6,5))
edge_list=[('1','2'),('1','3'),('1','4'),('1','5'),
('2','5'),('3','5'),('3','7'),('3','8'),
('4','3'),('4','7'),('5','8'),('7','8'),
('8','9'),('8','10'),('9','10'),('9','11')]
edge_list=[(n1,n2) for (n1,n2) in edge_list]
g.add_edges_from(edge_list); pos=nx.shell_layout(g)
g,pos,width=3,alpha=.5,edge_color='silver',
arrowsize=35,arrowstyle='-|>')
g,pos,node_size=1500,alpha=.8,
node_color='steelblue',node_shape='h')
g,pos,font_size=24,font_weight='bold')
pl.axis('off'); pl.tight_layout(); pl.show()