Graphviz:如何仅为基于记录的节点中的一个字段着色

14

有没有办法仅为记录型节点中的某个字段添加颜色。例如,在下面的示例中,可以使字段struct2:f0的颜色不同吗?

digraph structs {
node [shape=record];
struct1 [label="<f0> left|<f1> mid\ dle|<f2> right"];
struct2 [label="<f0> one|<f1> two"];
struct3 [label="hello\nworld |{ b |{c|<here> d|e}| f}| g | h"];
struct1:f1 -> struct2:f0;
struct1:f2 -> struct3:here;
}

谢谢

2个回答

10

我认为这是不可能的。

您可以考虑使用类似HTML的标签 - 您应该能够做到一切使用基于记录的节点所能做到的,甚至更多。

来自上述链接文档页面:

基于记录的形状已经被HTML样式标签广泛取代和推广。也就是说,可以考虑使用 shape=none 和类似HTML的标签而不是使用 shape=record

还有:

尽管HTML标签严格来说不是一个形状,它们可以被视为上述记录形状的概括。特别地,如果一个节点将其形状属性设置为 noneplaintext,则HTML标签将成为节点的形状。


2
这种方法的缺点是,这是90年代的HTML,有字体标签和表格属性。第二个缺点是需要使用colspan/rowspan来分配记录单元格。但我认为没有其他选择 :-( - Wouter Lievens
1
是的,这是90年代的HTML,我们的第一反应是鄙视它。但它是为了不同的目的而存在的。对于那个目的,它是现代的Graphviz。 - SSteve

8

试试这个:

  digraph G {
    "Record" [ label=<<table>
                          <tr>
                              <td>A</td>
                              <td bgcolor='#00CC11'>B</td>
                          </tr>
                       </table> 
                      >
             ];
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接