2013-03-19 6 views
6

Ich habe versucht, ein benutzerdefiniertes Bild Knoten in graphviz (Knoten d) zu verwenden:Mit png oder svg Bild als graphviz Knoten

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]; 
} 

Leider wird das Bild nicht angezeigt werden:

enter image description here

ich habe den Punkt Datei zusammengestellt:

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

Mein Code, inclu ding das PNG Bild, is stored in github.

Wie verwende ich einen Ersatzknoten d mit meinem benutzerdefinierten Bild?

Antwort

6

einfach eine andere Form, für diesen Knoten definieren, zum Beispiel shape=none:

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

Die record Form als Standard definiert wird das Bild nicht angezeigt werden, während none, box und sogar plaintext tun.

Gleichzeitig kann es eine gute Idee sein, die Bezeichnung auf nichts zu setzen.

+1

Funktioniert, danke! https://github.com/adamatan/graphviz_linked_list/blob/master/list.png –