如何在指定端口时将 rank=same 与 dir=back 结合使用?
How can I combine rank=same with dir=back, while specifying ports?
我有一个图表,它使用 HTML-like labels 创建表格,其中一些单元格由边连接。
这很好用,但是当我为两个节点指定 rank=same
时,为连接边指定 dir=back
并且至少有一个 port position 不考虑边方向。
这显示 example:
digraph so {
// This all works
a -> b [label="Regular direction" dir="forward"]
c -> d [label="Reverse direction", dir="back"]
e:w -> f:w [label="Reverse direction\n + port choice", dir="back"]
g -> h [label="Reverse direction\n + rank=same", dir="back"]
{rank=same; g; h}
// This fails
i:s -> j [label="Reverse direction\n + port choice\n + rank=same", dir="back"]
{rank=same i; j}
}
我在下面突出显示了失败的部分:
是否有 graph/node/edge 选项的组合可以让我从一个节点端口到另一个节点绘制反向边,同时两个节点处于同一级别?
我试过的
我没有在边上使用 dir=back
,而是尝试设置 arrowhead=none
and arrowtail=normal
in combination with dir=both
. That didn't work either 并且不知何故甚至影响了 i -> j
边。
digraph so {
// This fails
i:s -> j [label="Reverse direction\n + port choice\n + rank=same", dir="back"]
{rank=same i; j}
// This fails
k:s -> l [label="Reverse direction\n + port choice\n + rank=same\n + arrowhead/tail", arrowhead=none, arrowtail=normal, dir="both"]
{rank=same k; l}
}
我发现在 label
属性之前提及 dir
属性可以满足您的需求:
digraph so {
i:s -> j [dir="back", label="Reverse direction\n + port choice\n + rank=same"]
{rank=same; i;j}
}
我有一个图表,它使用 HTML-like labels 创建表格,其中一些单元格由边连接。
这很好用,但是当我为两个节点指定 rank=same
时,为连接边指定 dir=back
并且至少有一个 port position 不考虑边方向。
这显示 example:
digraph so {
// This all works
a -> b [label="Regular direction" dir="forward"]
c -> d [label="Reverse direction", dir="back"]
e:w -> f:w [label="Reverse direction\n + port choice", dir="back"]
g -> h [label="Reverse direction\n + rank=same", dir="back"]
{rank=same; g; h}
// This fails
i:s -> j [label="Reverse direction\n + port choice\n + rank=same", dir="back"]
{rank=same i; j}
}
我在下面突出显示了失败的部分:
是否有 graph/node/edge 选项的组合可以让我从一个节点端口到另一个节点绘制反向边,同时两个节点处于同一级别?
我试过的
我没有在边上使用 dir=back
,而是尝试设置 arrowhead=none
and arrowtail=normal
in combination with dir=both
. That didn't work either 并且不知何故甚至影响了 i -> j
边。
digraph so {
// This fails
i:s -> j [label="Reverse direction\n + port choice\n + rank=same", dir="back"]
{rank=same i; j}
// This fails
k:s -> l [label="Reverse direction\n + port choice\n + rank=same\n + arrowhead/tail", arrowhead=none, arrowtail=normal, dir="both"]
{rank=same k; l}
}
我发现在 label
属性之前提及 dir
属性可以满足您的需求:
digraph so {
i:s -> j [dir="back", label="Reverse direction\n + port choice\n + rank=same"]
{rank=same; i;j}
}