graphviz:箭头 "through" 框,而不是 "from - to" 框
graphviz: Arrow "through" boxes, not "from - to" box
我想让箭头"through"一个盒子,而不是从一个盒子到另一个盒子。有没有办法在 graphviz 中完成这个(见下文)?
(我为什么要问: 我有一些数据流图,其中一个实体的多个输出通过同一个实体传递给最后一个实体,而 graphviz输出如下所示:
例如,我觉得这不太好,而且无法识别。)
这在 graphviz 中不存在。
如何简单地省略从 A/B 到 C 的边缘中的箭头?
digraph G {
node[shape=box];
{A;B} -> C [arrowhead=none];
C -> D;
C -> D;
}
编辑:除非,您真的想要这样做...
... 然后您可以在标签中使用 HTML-like labels for the node which should have edges crossing through, define ports 将边附加到(在这种情况下,"ww" 和 "ee"),并有一个边到端口没有箭头,以及从带有箭头的端口离开的边缘,造成单个箭头穿过端口的错觉(这样是不可见的)。
digraph G {
node[shape=box];
C[label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD port="ww"></TD>
<TD></TD>
<TD port="ee"></TD>
</TR>
<TR>
<TD></TD>
<TD CELLPADDING="5">C</TD>
<TD></TD>
</TR>
</TABLE>
>];
A -> C:ww:n [arrowhead=none];
B -> C:ee:n [arrowhead=none];
C:ww:s -> D;
C:ee:s -> D;
}
为了获得漂亮的箭头曲线,我还为边缘定义了罗盘点 - 罗盘点 是 n/e/s/w 并确定边缘应该从哪一侧开始enter/leave.
我想让箭头"through"一个盒子,而不是从一个盒子到另一个盒子。有没有办法在 graphviz 中完成这个(见下文)?
(我为什么要问: 我有一些数据流图,其中一个实体的多个输出通过同一个实体传递给最后一个实体,而 graphviz输出如下所示:
例如,我觉得这不太好,而且无法识别。)
这在 graphviz 中不存在。
如何简单地省略从 A/B 到 C 的边缘中的箭头?
digraph G {
node[shape=box];
{A;B} -> C [arrowhead=none];
C -> D;
C -> D;
}
编辑:除非,您真的想要这样做...
... 然后您可以在标签中使用 HTML-like labels for the node which should have edges crossing through, define ports 将边附加到(在这种情况下,"ww" 和 "ee"),并有一个边到端口没有箭头,以及从带有箭头的端口离开的边缘,造成单个箭头穿过端口的错觉(这样是不可见的)。
digraph G {
node[shape=box];
C[label=<
<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD port="ww"></TD>
<TD></TD>
<TD port="ee"></TD>
</TR>
<TR>
<TD></TD>
<TD CELLPADDING="5">C</TD>
<TD></TD>
</TR>
</TABLE>
>];
A -> C:ww:n [arrowhead=none];
B -> C:ee:n [arrowhead=none];
C:ww:s -> D;
C:ee:s -> D;
}
为了获得漂亮的箭头曲线,我还为边缘定义了罗盘点 - 罗盘点 是 n/e/s/w 并确定边缘应该从哪一侧开始enter/leave.