Graphvizで木をplotするときのrootの決め方

 edgeを作るときにedge(root,other)という順番で入れる必要がある。

#0がroot
G=graphviz.Graph(format='png')
G.edge('0','1')
G.edge('0','2')
G.edge('1','3')
G.edge('1','4')
G.view()
#同じ木で1がroot
G=graphviz.Graph(format='png')
G.edge('1','0')
G.edge('0','2')
G.edge('1','3')
G.edge('1','4')
G.view()

 root以外のnodeについても、rootからみて上にある方がuで下にある方がdならG.edge(u,d)という順番でいれるとうまくplotされる。rootから深さ優先探索(もしくは幅優先探索)しながらplotしていくときれいになる。

コメント

タイトルとURLをコピーしました