Graphviz:节点在两个子图中

时间:2018-03-15 00:04:46

标签: graphviz dot subgraph

我有一个包含不同群集的图表。基本上我想配对不同的节点,即以某种方式显示不同节点有特殊关系。所以我决定使用集群,以便节点出现在一个矩形中 问题是节点可能与多个节点有关,即它可能位于不同的集群中。但我还没有找到一种方法在两个集群中插入一个节点 我有以下代码:

digraph G {rankdir="LR"; 
node [fontname = "font-awesome"];
    subgraph cluster3 {
        4 -> 5 [id="4t5",color="#717070",arrowsize=.5];
        8 -> 4[id="8t4",color="#717070",arrowsize=.5];

        subgraph cluster31{
        4 [id=4,fillcolor="#F5BDA2", shape=rect;label=<<TABLE BORDER="0">
        <TR><TD>1:12</TD></TR>
        </TABLE>>, style="filled",fontsize=6,fixedsize=true,width=0.5,height=0.2,shape=Mrecord];
        5 [id=5,fillcolor="#F5BDA2", shape=ellipse;label=<<TABLE BORDER="0">
        <TR><TD ID="32e" HREF=" ">1:13</TD></TR>
        </TABLE>>, style="filled"];
        }
         subgraph cluster32{
        8 [id=8,fillcolor="#F5BDA2", shape=rect;label=<<TABLE BORDER="0">
        <TR><TD>1:19</TD></TR>
        </TABLE>>, style="filled",shape=box];
        5 [id=5,fillcolor="#F5BDA2", shape=ellipse;label=<<TABLE BORDER="0">
        <TR><TD ID="32e" HREF=" ">1:13</TD></TR>
        </TABLE>>, style="filled"];
        }
    }
}

有没有办法或黑客或其他方式来实现这个想法?

1 个答案:

答案 0 :(得分:0)

为什么要使用id =“...”语句?通常没有必要。

如果我没有你,我不是100%,但是如果你只将集群32中的节点名从5改为6而不是标签,那么你就有了“相同”两个节点的直观表示在两个集群中。

例如:这:

digraph G {rankdir="LR"; 
node [fontname = "font-awesome"];
    subgraph cluster3 {
        4 -> 5 [color="#717070",arrowsize=.5];
        8 -> 4[color="#717070",arrowsize=.5];

        subgraph cluster31{
        4 [fillcolor="#F5BDA2", shape=rect;label=<<TABLE BORDER="0">
        <TR><TD>1:12</TD></TR>
        </TABLE>>, style="filled",fontsize=6,fixedsize=true,width=0.5,height=0.2,shape=Mrecord];
        5 [fillcolor="#F5BDA2", shape=ellipse;label=<<TABLE BORDER="0">
        <TR><TD ID="32e" HREF=" ">1:13</TD></TR>
        </TABLE>>, style="filled"];
        }
         subgraph cluster32{
        8 [fillcolor="#F5BDA2", shape=rect;label=<<TABLE BORDER="0">
        <TR><TD>1:19</TD></TR>
        </TABLE>>, style="filled",shape=box];
        6 [fillcolor="#F5BDA2", shape=ellipse;label=<<TABLE BORDER="0">
        <TR><TD ID="32e" HREF=" ">1:13</TD></TR>
        </TABLE>>, style="filled"];
        }
    }
}

会导致:

enter image description here