2013-03-19 42 views
6

Tôi đã cố gắng sử dụng một nút hình ảnh tùy chỉnh trong graphviz (nút d):Sử dụng png hoặc hình ảnh svg như nút 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]; 
} 

Thật không may, hình ảnh không xuất hiện:

enter image description here

Tôi đã biên soạn tệp dấu chấm bằng cách sử dụng:

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

Mã của tôi, inclu ding hình ảnh png, is stored in github.

Làm cách nào để sử dụng nút thay thế d bằng hình ảnh tùy chỉnh của tôi?

Trả lời

6

Đơn giản chỉ cần xác định một hình dạng khác cho nút này, ví dụ shape=none:

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

Các record hình dạng định nghĩa là mặc định không hiển thị hình ảnh, trong khi none, box và thậm chí plaintext làm.

Đồng thời, bạn nên đặt nhãn thành không có gì.

+1

Hoạt động, cảm ơn! https://github.com/adamatan/graphviz_linked_list/blob/master/list.png –

Các vấn đề liên quan