我可以使用单个DOT语句将一个子图中的所有节点连接到另一个子节点中的所有节点吗?

时间:2014-12-30 16:58:14

标签: graphviz dot

考虑这个简单的DOT文件。

graph Foo
{
    subgraph foo
    {
        a; b; c;
    }

    subgraph bar
    {
        w; x; y;
    }

    {a,b,c} -- {w,x,y};
}

语句{a,b,c} -- {w,x,y}表示“将foo中的所有节点连接到bar中的所有节点”......

......除了它没有。如果我向foobar添加节点,我必须更改同意它们的语句。我宁可写foo -- bar,但这并不像我希望的那样有用。

DOT中是否有这样的命令?

1 个答案:

答案 0 :(得分:0)

首先回答:,没有语法可以通过仅命名子图来将子图的所有节点连接到另一个子图的所有节点。

您必须列出 explicitely 所有节点才能相互连接。


这里有一些挑剔:

  

语句{a,b,c} -- {w,x,y}表示“将foo中的所有节点连接到bar中的所有节点”......

首先,我不认为用逗号分隔节点是正确的(在生成图形时检查错误输出)。通常节点用分号分隔。

其次,语句{a; b; c; } -- {w; x; y; } 意味着将foo中的所有节点连接到bar 中的所有节点,这意味着连接节点a, b和c表示节点w,x和y 。将其他节点添加到foobar不应生成任何边缘,这是预期的行为。