graphviz: subgraph has same node, how to unique

2019-06-19 05:26发布

问题:

I create dot file by my perl script. here is subgraphs which contains same node. eg:

subgraph{aa->bb->cc;}

subgraph{dd->bb->ee;}

I know those subgraph use same namespace, so my result output is a mess.

In each subgraph, I can make them unique, like bb and bb_1 below,

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

but it hard to make all node in all subgraphs unique.

please help. if here is some methods to make each subgraph "strict" or use different namespace?

回答1:

The label presented for a node is only related to the name of the node if it is not overridden by an explicit references.

For example, you can use "45" [label = "bb"]; "53" [label = "bb"]; to represent two nodes that have the same label.

Then

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

will use the internal id of each node to identify it so that you can then reuse the same label in many locations.



回答2:

gvpack will automatically rename nodes that are in clusters if you use it to put multiple sub-graphs into one graph. See Graph of Graphs in Graphviz for an example.