警告:cmd - > barbar:不在head cluster cluster_0内部

时间:2017-07-24 10:32:23

标签: graphviz

我理解在graphviz中,如果我将compound设置为true我能够将一个组件与子图连接而不是它的第一个元素。

我的代码是:

compound=true;
cmd[shape=component,label="foo"];
barbar[label="bar"];
msg[label="msg"];


subgraph cluster_0 {
        style=filled;
        color=lightgrey;
        node [style=filled,color=white];
        msg;
        label = "Instance.alertInstanceBingoChange()";
    }

cmd->barbar->msg[lhead=cluster_0];

result

所以你可以看到它提供了我想要的确切结果,除了警告barbar: head not inside head cluster cluster_0

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你非常接近。您需要做出的改变很简单。只需将最后一个语句分成两个:

digraph test {
compound=true;
cmd[shape=component,label="foo"];
barbar[label="bar"];
msg[label="msg"];

subgraph cluster_0 {
        style=filled;
        color=lightgrey;
        node [style=filled,color=white];
        msg;
        label = "Instance.alertInstanceBingoChange()";
    }

cmd->barbar;
barbar->msg[lhead=cluster_0];
}

现在,我不知道为什么这会产生差异,但这只是DOT的一个特点。上面的语法不会产生警告。希望这可以帮助你:)