GraphViz,找到两个节点之间的最短路径

时间:2017-01-26 22:58:25

标签: python graphviz dijkstra

使用使用GraphViz创建的有向图,我怎样才能找到最简单的路径让我们说'A'和' H' ? 我知道Dijkstra算法,我知道GraphViz提供了一个允许使用它的工具,但我不确定它是否存在于python库中。

我还想改变作为最短路径一部分的节点和边缘的前景色。 (..蓝色:p)

from graphviz import Digraph

f = Digraph('Test', filename='fsm.gv')
f.body.extend(['rankdir=LR', 'size="8,5"'])

f.edge('A', 'C')
f.edge('A', 'B')
f.edge('B', 'D')
f.edge('C', 'F')
f.edge('C', 'E')
f.edge('C', 'I')
f.edge('E', 'G')
f.edge('F', 'E')
f.edge('G', 'H')
f.edge('G', 'E')
f.edge('H', 'F')
f.edge('H', 'E')

f.view()

1 个答案:

答案 0 :(得分:0)

GraphViz是一个图形可视化工具。在内部,它可能有多个算法,但这些算法可能无法从包装器访问,因为它们是供内部使用的。如果您需要在图表上执行其他操作,我建议使用Networkx,它提供多种图形算法,包括shortest_paths,然后可以输出到dot进行可视化。

相关问题