我正在使用 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 中的节点是倾斜的而不居中?
链接:项目链接