子图有相同的节点,如何使其唯一?

8

我用Perl脚本创建dot文件。这里有一些包含相同节点的子图,例如:

subgraph{aa->bb->cc;}
subgraph{dd->bb->ee;}

我知道这些子图使用相同的命名空间,所以我的结果输出一团糟。
在每个子图中,我可以使它们唯一,例如下面的 bbbb_1
subgraph{aa->bb->cc; bb_1->dd;}

但是让所有子图中的所有节点都变得唯一很困难。

是否有一些方法可以使每个子图“严格”或使用不同的命名空间?

2个回答

10

如果一个节点的标签没有被显式地覆盖,那么它呈现的标签只与该节点的名称相关。

例如,您可以使用"45" [label = "bb"]; "53" [label = "bb"];来表示具有相同标签的两个节点。

然后

subgraph{aa->"45"->cc;}
subgraph{dd->"53"->ee;}

将使用每个节点的内部id来标识它,这样您就可以在许多位置重复使用相同的标签。


1

gvpack会自动重命名位于群集中的节点,如果您使用它来将多个子图放入一个图中。请参见Graph of Graphs in Graphviz的示例。


谢谢。看起来很难解决。因此,我为每个节点添加了行号,尽管这是近两天的辛苦工作。 - eexpress

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接