在
GraphViz
的DOT
语言中,我正试图表示一个依赖图。我需要在容器内部放置节点,并能够使节点和/或容器依赖于其他节点和/或容器。我使用subgraph
来表示我的容器。节点链接完全没有问题,但我无法弄清如何连接子图。给定以下程序,我需要能够用箭头连接cluster_1
和cluster_2
,但我尝试过的任何内容都会创建新的节点,而不是连接这些集群:digraph G {
graph [fontsize=10 fontname="Verdana"];
node [shape=record fontsize=10 fontname="Verdana"];
subgraph cluster_0 {
node [style=filled];
"Item 1" "Item 2";
label = "Container A";
color=blue;
}
subgraph cluster_1 {
node [style=filled];
"Item 3" "Item 4";
label = "Container B";
color=blue;
}
subgraph cluster_2 {
node [style=filled];
"Item 5" "Item 6";
label = "Container C";
color=blue;
}
// Renders fine
"Item 1" -> "Item 2";
"Item 2" -> "Item 3";
// Both of these create new nodes
cluster_1 -> cluster_2;
"Container A" -> "Container C";
}
fdp
。链接的示例和上面的示例都有效(此处示例的最后一行需要使用子图名称而不是标签,并且可能很好地包括图形的线长度);它有点紧凑。 - nlucaronifdp
v2.28.0,并从示例中复制/粘贴源代码后,线条连接到子图的中心而不是边缘。如果您在OmniGraffle中打开.dot,则它们将正确连接,而“neato”和“dot”都会为群集创建多余的节点。 - Phrogz