2013-03-19 8 views
6

Ho cercato di utilizzare un nodo un'immagine personalizzata in graphviz (nodo d):Utilizzando png o svg immagine come nodo graphviz

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

Purtroppo, l'immagine non viene visualizzata:

enter image description here

ho compilato il file dot utilizzando:

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

il mio codice, inclu ding the png image, is stored in github.

Come utilizzare un nodo di sostituzione d con la mia immagine personalizzata?

risposta

6

sufficiente definire un'altra forma per questo nodo, ad esempio shape=none:

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

La record forma definita come difetto non visualizzare l'immagine, mentre none, box e anche plaintext fanno.

Allo stesso tempo, potrebbe essere una buona idea impostare l'etichetta su nulla.

+1

Funziona, grazie! https://github.com/adamatan/graphviz_linked_list/blob/master/list.png –