DOT 代码
digraph {
newrank=true;
{
node [shape=box]
edge [dir=none, style=dotted]
A -> B
B -> C
C -> D
}
Aa;Ab
subgraph cluster_0 {
label="subgraph"
Ba;Bb
}
Ca;Cb [xlabel="xlabel Cb"]
{ rank=same; A; Aa; Ab}
{ rank=same; B; Ba; Bb}
{ rank=same; C; Ca; Cb}
{ rank=same; D; }
}
生成
我们可以看到第一条边显示 6.5 个点,而另外两条边显示 5.5 个点,因为集群的标签“子图”正在影响其他节点的定位,可能是因为 GZ 内部将其视为某种节点。
这很烦人,我只想让节点影响节点,而不是集群标签。
Node Cb 的 xlabel 不会这样做。
xlabel 不适用于簇,仅适用于边和节点。
对于簇来说,是否有某种相当于 xlabel 的东西?或者比下面的更好的选择。
已知的解决方法选项:
执行#3的一种可以说更干净的方法是将每组节点放入一个集群中,但设置 peripheries=0 而不是摆弄 pencolor
或
在一个集群上使用 margin 属性。但请注意,集群周围的盒子在各个方面都更加舒适
digraph {
newrank=true;
{
node [shape=box]
edge [dir=none, style=dotted]
A -> B
B -> C
C -> D
}
subgraph cluster_00 {
margin=2
label="subgraph"
Aa;Ab
}
subgraph cluster_0 {
margin=2
label="subgraph"
Ba;Bb
}
Ca;Cb [xlabel="xlabel Cb"]
{ rank=same; A; Aa; Ab}
{ rank=same; B; Ba; Bb}
{ rank=same; C; Ca; Cb}
{ rank=same; D; }
}