5

请考虑以下代码:

digraph G {
    node [shape=plaintext]

    a [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
                           <TR><TD ID="first" BGCOLOR="gray">first</TD></TR>
                           <TR><TD ID="second" PORT="f1">second</TD></TR>
                           <TR><TD ID="third" PORT="f2">third</TD></TR>
              </TABLE>>];

    b [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
                           <TR><TD ID="first" BGCOLOR="gray">first</TD></TR>
                           <TR><TD ID="second" PORT="f1">second</TD></TR>
                           <TR><TD ID="third" PORT="f2">third</TD></TR>
              </TABLE>>];

    a:first -> b:first;
}

我收到很多警告:

laci@nitehawk ~ $ dot records.gv -T pdf > records.pdf
Warning: Illegal attribute ID in <TD> - ignored
Warning: Illegal attribute ID in <TD> - ignored
Warning: Illegal attribute ID in <TD> - ignored
in label of node a
Warning: Illegal attribute ID in <TD> - ignored
Warning: Illegal attribute ID in <TD> - ignored
Warning: Illegal attribute ID in <TD> - ignored
in label of node b
Warning: node a, port first unrecognized
Warning: node b, port first unrecognized
  1. 根据文档,TD 的 ID 属性应该是合法的。我错过了什么?
  2. 如何引用单个单元格并在它们之间创建边缘?
4

2 回答 2

12

为了完整起见,这是实际有效的完整来源:

digraph G {
    node [shape=plaintext]

    a [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
                           <TR><TD PORT="c" BGCOLOR="gray">first</TD></TR>
                           <TR><TD PORT="d">second</TD></TR>
                           <TR><TD PORT="e">third</TD></TR>
              </TABLE>>];

    b [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
                           <TR><TD PORT="c" BGCOLOR="gray">first</TD></TR>
                           <TR><TD PORT="d">second</TD></TR>
                           <TR><TD PORT="e">third</TD></TR>
              </TABLE>>];

    a:c -> b:c;
}
于 2012-11-14T14:11:48.150 回答
8

您可以简单地使用PORT而不是,ID然后使用示例中的边缘定义。

<TD PORT="first" BGCOLOR="gray">first</TD>

ID的目的是下游使用,因此除非您使用 SVG 输出并在其他地方重用 id,否则它们可能并不是真正有用。

至于警告,我没有用 graphviz 2.28 得到它们。如果您使用旧版本的 graphviz,我建议更新。

graphviz html 标签端口

于 2012-11-13T22:52:30.977 回答