dot graph: subgraph - chunhualiao/public-docs GitHub Wiki
dot graph
digraph subgraph_demo {
// Graph attributes
rankdir=TB;
// Main nodes
MainNode1 [label="Main Node 1", color="lightblue", shape="box"];
MainNode2 [label="Main Node 2", color="lightgreen", shape="box"];
// Subgraph for Group A
subgraph cluster_groupA {
// Subgraph attributes
label="Group A";
color="lightcoral";
style="filled";
fillcolor="lightyellow";
// Nodes in subgraph A
A1 [label="Node A1", color="lightpink", shape="ellipse"];
A2 [label="Node A2", color="lightpink", shape="ellipse"];
A3 [label="Node A3", color="lightpink", shape="ellipse"];
// Edges within subgraph A
A1 -> A2 [label="Internal A", color="red"];
A2 -> A3 [label="Internal A", color="red"];
}
// Subgraph for Group B
subgraph cluster_groupB {
// Subgraph attributes
label="Group B";
color="lightblue";
style="filled";
fillcolor="lightcyan";
// Nodes in subgraph B
B1 [label="Node B1", color="lightgreen", shape="diamond"];
B2 [label="Node B2", color="lightgreen", shape="diamond"];
// Edges within subgraph B
B1 -> B2 [label="Internal B", color="blue"];
}
// Nested subgraph example
subgraph cluster_groupC {
// Subgraph attributes
label="Group C (with nested subgraph)";
color="lightgray";
style="filled";
fillcolor="whitesmoke";
C1 [label="Node C1", color="orange", shape="box"];
// Nested subgraph
subgraph cluster_nestedD {
label="Nested Group D";
color="purple";
style="filled";
fillcolor="lavender";
D1 [label="Node D1", color="purple", shape="ellipse"];
D2 [label="Node D2", color="purple", shape="ellipse"];
D1 -> D2 [label="Nested", color="purple"];
}
C1 -> D1 [label="To Nested", color="orange"];
}
// Edges between main nodes and subgraphs
MainNode1 -> A1 [label="To Group A", color="green", weight="2.0"];
MainNode1 -> B1 [label="To Group B", color="blue", weight="1.5"];
A3 -> MainNode2 [label="From Group A", color="red", weight="1.8"];
B2 -> MainNode2 [label="From Group B", color="blue", weight="1.2"];
MainNode1 -> C1 [label="To Group C", color="gray", weight="1.0"];
}