Usage

Creating a Graph object

from graphe.graph import graph
from graphe import draw

G = graph.Graph('mediumG.txt')

fig = draw.Draw()
fig.node_attr(label='')
fig.draw(G)
_images/graph.png

SymbolGraph

from graphe.digraph import symboldigraph
from graphe import draw

SG = symbolgraph.SymbolGraph('routes.txt')

fig = draw.Draw()
fig.set_names(SG.node_names())
fig.node_attr(width='0.3', height='0.3', shape='circle', style='filled',
              color='gray', fontcolor='black', fontsize='8')
fig.draw(SG.graph())
_images/symbolg.png

When plotting you can manually add node name

node_names = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M']

G = graph.Graph('tinyG.txt')

fig = draw.Draw()
fig.set_names(node_names)
fig.node_attr(style='', fontcolor='black', fontsize='10')
fig.draw(G)
_images/node_names.png

And you can do breadth first search on SymbolGraph

SG = symbolgraph.SymbolGraph('routes.txt')

b = bfs.BFSearch(SG.graph(), SG.ST['LAX'])
path = b.path_to(SG.ST['HOU'])

fig = draw.Draw()
fig.set_names(SG.node_names())
fig.node_attr(width='0.3', height='0.3', shape='circle', style='filled',
              color='gray', fontcolor='black', fontsize='8')
fig.draw(SG.graph(), path)
_images/symbol_graph_bfs.png

Digraph

from graphe.digraph import digraph
from graphe import draw

DG = digraph.Digraph('tinyDG.txt')

fig = draw.Draw(digraph=True)
fig.node_attr(fontsize='8')
fig.draw(DG, [11, 12, 9, 11])
_images/digraph_loop.png