2011-09-28 26 views
45

Tôi đang cố gắng tạo một biểu đồ có hai biểu đồ con trong dấu chấm. Mã này là như sau:Graphviz subgraph không được hiển thị trực quan

digraph G { 
     subgraph step1 { 
       style=filled; 
       node [label="Compiler"] step1_Compiler; 
       node [label="Maschine"] step1_Maschine; 
       color=lightgrey; 
     } 

     subgraph step2 { 
       style=filled; 
       color=lightgrey; 
       node [label="Interpretierer"] step2_Interpretierer; 
       node [label="Maschine"] step2_Maschine; 
       label="Virtuelle Maschine"; 
     } 

     "Programm (Java)" -> step1_Compiler; 
     step1_Compiler -> step1_Maschine; 
     step1_Maschine -> "Bytecode"; 
     "Bytecode" -> step2_Interpretierer; 
     step2_Interpretierer -> step2_Maschine; 
     step2_Maschine -> "Ergebnis"; 
} 

Kết quả tôi nhận được trông giống như sau:

Result of above code

tôi mong đợi để xem một hộp xung quanh cả hai đồ thị con. Tôi đang thiếu gì ở đây?

Trả lời

93

Bạn sẽ có tiền tố tên của đồ thị con của bạn với cụm:

subgraph clusterstep1 { 

subgraph clusterstep2 { 

để có được phong cách và nhãn.

Từ graphiz documentation, section "Subgraphs and Clusters":

Vai trò thứ ba cho đồ thị con trực tiếp liên quan đến việc làm thế nào các đồ thị sẽ đặt ra bởi động cơ bố trí nhất định. Nếu tên của đồ thị con bắt đầu với cụm, Graphviz lưu ý biểu đồ con dưới dạng một cụm đặc biệt đồ thị con. Nếu được hỗ trợ, công cụ bố cục sẽ thực hiện bố cục sao cho các nút thuộc cụm được vẽ cùng nhau, với toàn bộ bản vẽ của cụm chứa trong một hình chữ nhật bao quanh. Lưu ý rằng, đối với các biểu đồ con tốt và xấu, cụm không phải là một phần của ngôn ngữ DOT , nhưng chỉ một quy ước cú pháp được tuân theo một số công cụ bố trí .

+0

Vì vậy, thuật toán con và cụm đồ thị * cả hai đều dẫn đến nhóm hình ảnh theo thuật toán bố cục? – Chris

+0

Cảm ơn bạn rất nhiều. – sjas

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