Graphviz Dot:混合群集和节点会导致点崩溃

时间:2017-03-13 16:31:16

标签: graphviz dot

我正在尝试创建一个过程的概述,并且对于与1个任务并行的1个子过程,我想要以下图表:

digraph cluster0 {
    graph [compound=true label=0]
        I_0 [label="" height=0 shape=none style=invis width=0]
        E_0 [label="" height=0 shape=none style=invis width=0]

    subgraph cluster1 {
      graph [compound=true label=subprocess1]
        I_1 [label="" height=0 shape=none style=invis width=0]
        E_1 [label="" height=0 shape=none style=invis width=0]
        I_1 -> t111 -> t112 -> t113
        I_1 -> t121 -> t122 -> t123
        I_1 -> t131 -> t132 -> t133
        t113 -> E_1 [style=invis]
        t123 -> E_1 [style=invis]
        t133 -> E_1 [style=invis]
    }
    I_0 -> I_1 [lhead=cluster1]
    E_1 -> E_0 [ltail=cluster1 style=invis]

    I_0 -> task1
    task1 -> E_0 [style=invis]
}

正在运行

dot -Tpng process.dot -o process.png

产生以下预期输出: Dot output from code above

但是,如果我尝试将另一个子进程并行添加到现有的子进程和任务中,我会弹出一个通知点崩溃:

digraph cluster0 {
  graph [compound=true label=0]
    I_0 [label="" height=0 shape=none style=invis width=0]
    E_0 [label="" height=0 shape=none style=invis width=0]

    subgraph cluster1 {
      graph [compound=true label=subprocess1]
        I_1 [label="" height=0 shape=none style=invis width=0]
        E_1 [label="" height=0 shape=none style=invis width=0]
        I_1 -> t111 -> t112 -> t113
        I_1 -> t121 -> t122 -> t123
        I_1 -> t131 -> t132 -> t133
        t113 -> E_1 [style=invis]
        t123 -> E_1 [style=invis]
        t133 -> E_1 [style=invis]
    }
    I_0 -> I_1 [lhead=cluster1]
    E_1 -> E_0 [ltail=cluster1 style=invis]

    subgraph cluster2 {
      graph [compound=true label=subprocess2]
        I_2 [label="" height=0 shape=none style=invis width=0]
        E_2 [label="" height=0 shape=none style=invis width=0]
        I_2 -> t211 -> t212 -> t213
        I_2 -> t221 -> t222 -> t223
        I_2 -> t231 -> t232 -> t233
        t213 -> E_2 [style=invis]
        t223 -> E_2 [style=invis]
        t233 -> E_2 [style=invis]
    }
    I_0 -> I_2 [lhead=cluster2]
    E_2 -> E_0 [ltail=cluster2 style=invis]

    I_0 -> task1
    task1 -> E_0 [style=invis]
}

我做的事情是非法的,还是我不应该做的事情?无法在其他地方找到任何有关此行为的帮助

1 个答案:

答案 0 :(得分:0)

I_2 [label="" height=0 shape=none style=invis width=0]

似乎你不能设置shape none,但标签是空的。 尝试删除空标签或改为使用隐形点。

I_2 [shape=point style=invis]