【发布时间】:2016-09-06 14:27:27
【问题描述】:
我有几个相关的子图,我想在 GraphViz 中一起绘制。当我绘制简单的节点时,它看起来很漂亮:
来源:
digraph {
rankdir=LR;
A1 -> A21;
A1 -> A22;
A1 -> A23;
A1 -> A24;
B1 -> B21;
B1 -> B22;
B1 -> B23;
B1 -> B24;
A21 -> A31;
A22 -> A31;
A23 -> A31;
A23 -> A32;
B21 -> B31;
B21 -> B32;
B22 -> B32;
B21 -> B33;
B23 -> B33;
}
由于几个子图中同一级别的节点是相关的,我想将它们分组并给它一个标签。 我尝试使用集群来做到这一点,但它“挤压”了节点:
来源:
digraph {
rankdir=LR;
subgraph cluster_level1 {
label = "Level 1";
style=filled;
color=lightgrey;
A1;
B1;
}
subgraph cluster_level2 {
label = "Level 2";
style=filled;
color=lightgrey;
A21;
A22;
A23;
A24;
B21;
B22;
B23;
B24;
}
subgraph cluster_level3 {
label = "Level 3";
style=filled;
color=lightgrey;
A31;
A32;
B31;
B32;
B33;
}
A1 -> A21;
A1 -> A22;
A1 -> A23;
A1 -> A24;
B1 -> B21;
B1 -> B22;
B1 -> B23;
B1 -> B24;
A21 -> A31;
A22 -> A31;
A23 -> A31;
A23 -> A32;
B21 -> B31;
B21 -> B32;
B22 -> B32;
B21 -> B33;
B23 -> B33;
}
只有两个子图,这很糟糕,但仍然不可怕。但是,如果我添加更多的子图,它会变得越来越难看。
有没有办法用一些阴影和标签对节点进行分组,同时使用 GraphViz 保持原始节点布局?
【问题讨论】:
-
每当我遇到点问题时,我发现最好的方法是在这里发帖; graphviz.org/forum