pygraphviz上的嵌套集群(或add_subgraph)

时间:2017-03-23 20:48:41

标签: graphviz pygraphviz

使用pygraphviz,我可以使用add_subgraph(list_of_nodes, label='cluster_somename')添加子图。这将在调用layout时在子图块内创建它。

有没有办法嵌套子图?

我使用dot布局,我知道如果它们是嵌套的,它可以处理和显示子群集。但我无法通过pygraphviz输出嵌套集群。

1 个答案:

答案 0 :(得分:0)

您可以调用子图的add_subgraph()来创建嵌套子图。

import pygraphviz as pgv

g = pgv.AGraph(name='root')
g.add_node('A')

g.add_subgraph(name='cluster_1')
c1 = g.subgraphs()[-1]
c1.add_node('B')

c1.add_subgraph(name='cluster_2')
c2 = c1.subgraphs()[-1]
c2.add_node('C')

print(g)
strict graph root {
    subgraph cluster_1 {
        subgraph cluster_2 {
            C;
        }
        B;
    }
    A;
}