我用Perl脚本创建dot文件。这里有一些包含相同节点的子图,例如:
subgraph{aa->bb->cc;}
subgraph{dd->bb->ee;}
我知道这些子图使用相同的命名空间,所以我的结果输出一团糟。
在每个子图中,我可以使它们唯一,例如下面的
bb
和 bb_1
。subgraph{aa->bb->cc; bb_1->dd;}
但是让所有子图中的所有节点都变得唯一很困难。
是否有一些方法可以使每个子图“严格”或使用不同的命名空间?
如果一个节点的标签没有被显式地覆盖,那么它呈现的标签只与该节点的名称相关。
例如,您可以使用"45" [label = "bb"]; "53" [label = "bb"];
来表示具有相同标签的两个节点。
然后
subgraph{aa->"45"->cc;}
subgraph{dd->"53"->ee;}
将使用每个节点的内部id来标识它,这样您就可以在许多位置重复使用相同的标签。
gvpack
会自动重命名位于群集中的节点,如果您使用它来将多个子图放入一个图中。请参见Graph of Graphs in Graphviz的示例。