Использование изображения png или svg в качестве узла graphviz

Я попытался использовать пользовательский узел изображения в graphviz (node d):

digraph foo {
    rankdir=LR;
    node [shape=record];
    a [label="{ <data> 12 | <ref>  }", width=1.2]
    b [label="{ <data> 99 | <ref>  }"];
    c [label="{ <data> 37 | <ref>  }"];
    d [image="X_Shape_Pillar_Yellow.png"];
    a:ref:c -> b:data [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false, arrowsize=1.2];
    b:ref:c -> c:data [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
    c:ref:c -> d      [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
}

к сожалению, изображение не появляется:

enter image description here

я скомпилировал файл dot, используя:

dot -v -Tpng list.dot -o list.png

мой код, включая png-изображение,хранится в github.

как использовать узел замены d С моего собственного образа?

1 ответов


просто определите другую форму для этого узла, например shape=none:

d [shape=none, label="", image="X_Shape_Pillar_Yellow.png"];

на record форма, определенная по умолчанию, не отображает изображение, тогда как none, box и даже plaintext сделать.

в то же время, это может быть хорошей идеей, чтобы установить метку на нет.