使用 graphviz 在角落绘制文本

Draw text in corners with graphviz

我有一个非常简单的图表:

digraph {
    node [shape=rect];
    rankdir=LR;
    A -> B
}

如我所料输出:

但是,我需要在A和B的每个角落放置唯一的数字。我目前只知道xlabel,但据我所知只能使用一次并且不能在a中指定特定区域。那么怎样才能做到每个角都写数字呢?

Graphviz 的最新版本支持 HTML 节点样式,包括 tables(即 "newer than mid-November 2003")。所以你可以像这样制作一个 3x3 table:

来源:

digraph {
    node [shape=rect];
    rankdir=LR;
    A [shape=none label=<
      <TABLE BORDER="0" CELLBORDER="0">
      <TR><TD>1</TD><TD></TD><TD>2</TD></TR>
      <TR><TD COLSPAN="3" BORDER="1">A</TD></TR>
      <TR><TD>3</TD><TD></TD><TD>4</TD></TR>
      </TABLE>
    >];
    A -> B
}

使用 http://sandbox.kidstrythisathome.com/erdos/ 测试;它也适用于我本地安装的版本 (2.38.0)。

请参阅 Graphviz: Node Shapes 了解完整的受支持 HTML 集和示例。