Trong DOT
ngôn ngữ cho GraphViz
, tôi đang cố gắng biểu diễn một sơ đồ phụ thuộc. Tôi cần có khả năng có các nút bên trong một container và để có thể tạo các nút và / hoặc các container phụ thuộc vào các nút và / hoặc các container khác.
Tôi đang sử dụng subgraph
để đại diện cho container của tôi. Liên kết nút hoạt động tốt, nhưng tôi không thể tìm ra cách kết nối các sơ đồ con.
Đưa ra chương trình dưới đây, tôi cần có khả năng kết nối cluster_1
và cluster_2
bằng một mũi tên, nhưng bất cứ điều gì tôi đã thử đều tạo các nút mới thay vì kết nối các cụm:
digraph G {
graph [fontsize=10 fontname="Verdana"];
node [shape=record fontsize=10 fontname="Verdana"];
subgraph cluster_0 {
node [style=filled];
"Item 1" "Item 2";
label = "Container A";
color=blue;
}
subgraph cluster_1 {
node [style=filled];
"Item 3" "Item 4";
label = "Container B";
color=blue;
}
subgraph cluster_2 {
node [style=filled];
"Item 5" "Item 6";
label = "Container C";
color=blue;
}
// Renders fine
"Item 1" -> "Item 2";
"Item 2" -> "Item 3";
// Both of these create new nodes
cluster_1 -> cluster_2;
"Container A" -> "Container C";
}
fdp
. Ví dụ được liên kết và một ở trên cả hai đều hoạt động (dòng cuối cùng trong ví dụ ở đây cần sử dụng tên của sơ đồ con không phải là nhãn và có thể rất hay khi bao gồm độ dài dòng cho biểu đồ); nó hơi chặt như vậy).
fdp
v2.28.0 và sao chép / dán nguồn từ ví dụ các đường kết nối với trung tâm của sơ đồ con, không phải với các cạnh. Nếu bạn mở .dot trong OmniGraffle, chúng được kết nối đúng cách, trong khi neato
và dot
cả hai đều tạo các nút thừa cho cụm.