2012-01-25 38 views
9

Có cách nào để thêm màu vào chỉ một trường trong nút dựa trên bản ghi hay không. Giống như trong ví dụ sau, trường có thể struct2: f0 một mình có màu khác không?Graphviz: Chỉ màu một trường trong Nút ghi dựa trên

digraph structs { 
node [shape=record]; 
struct1 [label="<f0> left|<f1> mid\ dle|<f2> right"]; 
struct2 [label="<f0> one|<f1> two"]; 
struct3 [label="hello\nworld |{ b |{c|<here> d|e}| f}| g | h"]; 
struct1:f1 -> struct2:f0; 
struct1:f2 -> struct3:here; 
} 

Thx

Trả lời

9

Tôi không nghĩ rằng đây là có thể.

Bạn có thể xem xét sử dụng HTML-like labels - bạn sẽ có thể thực hiện mọi thứ bạn có thể thực hiện với các nút dựa trên bản ghi và hơn thế nữa.

Từ trang tài liệu liên kết ở trên:

Hình dạng kỷ lục dựa trên phần lớn đã được thay thế và rất nhiều khái quát hóa bởi nhãn HTML như thế nào. Tức là, thay vì sử dụng shape=record, người ta có thể xem xét sử dụng shape=none và nhãn giống HTML.

Mặc dù nhãn HTML không, nói đúng ra, một hình dạng, họ có thể xem như một sự tổng quát của các hình dạng kỷ lục mô tả ở trên. Trong trường hợp đặc biệt là , nếu nút đã đặt thuộc tính hình dạng thành none hoặc plaintext, nhãn HTML sẽ là hình dạng của nút.

+2

Nhược điểm của phương pháp này là rằng đây là những năm 90-kỷ nguyên HTML, với các thẻ font chữ và bảng thuộc tính. Nhược điểm thứ hai là bạn cần phải gây rối với colspan/rowspan để phân phối các ô của bản ghi. Nhưng tôi không nghĩ rằng có một sự thay thế :-( –

+1

Vâng, đó là HTML thời đại của 90 và phản ứng đầu gối của chúng tôi là để khinh thường nó Nhưng nó cho một mục đích khác nhau.Với mục đích đó, nó là hiện đại Graphviz. – SSteve

4

Hãy thử điều này:

digraph G { 
    "Record" [ label=<<table> 
          <tr> 
           <td>A</td> 
           <td bgcolor='#00CC11'>B</td> 
          </tr> 
         </table> 
         > 
      ]; 
    } 
Các vấn đề liên quan