为什么输出没有边缘?

问题描述 投票:0回答:0

我正在使用 graphviz 创建图表。我正在创建两个子图 A 和 B,每个子图都有一个 INIT 子图和一个错误子图。 INIT子图可以有多个按顺序的节点。在错误子图中,我想要记录(或它们之间没有边缘并且彼此堆叠的节点)。我想在 INIT 子图和 Error 子图之间有一个边缘。

这是我的代码:

digraph A {
    compound=true;
    rankdir="TB"
    graph [nodesep=1, ranksep=1];
    
    subgraph cluster_a {
        // label="A"
        style="invis"
        
        subgraph cluster_a_a {
            label="INIT-1";
            style="rect";
            node [shape="box"]
            "Load args"
        };
        
        subgraph cluster_a_b {
            label="ERROR"
            style="invis"
            node [shape="record"]
            
            struct1 [
                label="{<port1>log.error()|sys.exit(1)}"
                ]
        };
        
        "Load args" -> struct1:port1 [label="on Failure", ltail=cluster_a_a, constraint=false];
    }
    
    subgraph cluster_b {
        // label="B"
        style="invis"
        
        subgraph cluster_b_a {
            label="INIT-2";
            style="rect";
            node [shape="box"]
            "Initialize SparkSession" -> "Create MySqlConnection"
        }
        
        subgraph cluster_b_b {
            label="ERROR"
            style="invis"
            node [shape="record"]
            
            struct2 [
                label="{<port1>log.error()|sys.exit(1)}"
                ]
        }    
        
        "Create MySqlConnection" -> struct2:port1 [label="on Failure", ltail="cluster_b_a", constraint=false]
    }
    
}

这是输出:

为什么

INIT-1 (Load Args)
log.error()
之间没有边缘?

附加问题: 为什么 INIT-2 中的节点是倾斜的而不居中?

链接:项目链接

graphviz dot
© www.soinside.com 2019 - 2024. All rights reserved.