子图水平且其节点垂直对齐
Subgraphs horizontal and its nodes vertical aligned
我在水平组织子图和垂直组织子图内的节点时遇到问题。所有这些(子图和节点)都在一条线上(水平或垂直)。
digraph G {
rankdir = LR;
subgraph cluster_0 {
rankdir = TB;
node [style=filled];
label = "Title 1";
color=black
N1 -> N2;
}
subgraph cluster_1 {
rankdir = TB;
node [style=filled];
label = "Title 2";
color=black
N3 -> N4 -> N5;
}
subgraph cluster_2 {
rankdir = TB;
node [style=filled];
...
}
...
N2 -> N3;
...
N1 [label = "BA_A", fillcolor="green", shape="Msquare"]
N2 [label = "W2", fillcolor="green", shape="octagon"]
N3 [label = "BA_A", fillcolor="green", shape="Msquare"]
N4 [label = "W2", fillcolor="green", shape="octagon"]
N5 [label = "W2_ERROR", fillcolor="red", shape="octagon"]
N6 [label = "W3", fillcolor="green", shape="invtriangle"]
...
}
我也试过 {rank=same; N1; N3; ...;}
。这将节点从子图中取出。
你可以使用类似的东西:
digraph G {
rankdir = LR;
subgraph cluster_0 {
{rank=same N1 N2}
label = "Title 1";
N1 -> N2;
}
subgraph cluster_1 {
{rank=same N3 N4 N5}
label = "Title 2";
N3 -> N4 -> N5;
}
subgraph cluster_2 {
node [style=filled];
label = "Title 3";
N6;
}
N2 -> N3;
N5 -> N6;
N1 [label = "BA_A", fillcolor="green", shape="Msquare"]
N2 [label = "W2", fillcolor="green", shape="octagon"]
N3 [label = "BA_A", fillcolor="green", shape="Msquare"]
N4 [label = "W2", fillcolor="green", shape="octagon"]
N5 [label = "W2_ERROR", fillcolor="red", shape="octagon"]
N6 [label = "W3", fillcolor="green", shape="invtriangle"]
}
在你的情况下,我更喜欢从上到下的布局
digraph G {
rankdir = TB;
node [style=filled];
subgraph cluster_0 {
N1 N2
label = "Title 1";
edge [dir = back]
N2 -> N1;
}
subgraph cluster_1 {
N3 N4 N5
label = "Title 2";
edge [dir = back]
N5 -> N4 -> N3;
}
subgraph cluster_2 {
label = "Title 3";
N6
}
N2 -> N3 [constraint=none];
N5 -> N6 [constraint=none];
N1 [label = "BA_A", fillcolor="green", shape="Msquare"]
N2 [label = "W2", fillcolor="green", shape="octagon"]
N3 [label = "BA_A", fillcolor="green", shape="Msquare"]
N4 [label = "W2", fillcolor="green", shape="octagon"]
N5 [label = "W2_ERROR", fillcolor="red", shape="octagon"]
N6 [label = "W3", fillcolor="green", shape="invtriangle"]
}
我在水平组织子图和垂直组织子图内的节点时遇到问题。所有这些(子图和节点)都在一条线上(水平或垂直)。
digraph G {
rankdir = LR;
subgraph cluster_0 {
rankdir = TB;
node [style=filled];
label = "Title 1";
color=black
N1 -> N2;
}
subgraph cluster_1 {
rankdir = TB;
node [style=filled];
label = "Title 2";
color=black
N3 -> N4 -> N5;
}
subgraph cluster_2 {
rankdir = TB;
node [style=filled];
...
}
...
N2 -> N3;
...
N1 [label = "BA_A", fillcolor="green", shape="Msquare"]
N2 [label = "W2", fillcolor="green", shape="octagon"]
N3 [label = "BA_A", fillcolor="green", shape="Msquare"]
N4 [label = "W2", fillcolor="green", shape="octagon"]
N5 [label = "W2_ERROR", fillcolor="red", shape="octagon"]
N6 [label = "W3", fillcolor="green", shape="invtriangle"]
...
}
我也试过 {rank=same; N1; N3; ...;}
。这将节点从子图中取出。
你可以使用类似的东西:
digraph G {
rankdir = LR;
subgraph cluster_0 {
{rank=same N1 N2}
label = "Title 1";
N1 -> N2;
}
subgraph cluster_1 {
{rank=same N3 N4 N5}
label = "Title 2";
N3 -> N4 -> N5;
}
subgraph cluster_2 {
node [style=filled];
label = "Title 3";
N6;
}
N2 -> N3;
N5 -> N6;
N1 [label = "BA_A", fillcolor="green", shape="Msquare"]
N2 [label = "W2", fillcolor="green", shape="octagon"]
N3 [label = "BA_A", fillcolor="green", shape="Msquare"]
N4 [label = "W2", fillcolor="green", shape="octagon"]
N5 [label = "W2_ERROR", fillcolor="red", shape="octagon"]
N6 [label = "W3", fillcolor="green", shape="invtriangle"]
}
在你的情况下,我更喜欢从上到下的布局
digraph G {
rankdir = TB;
node [style=filled];
subgraph cluster_0 {
N1 N2
label = "Title 1";
edge [dir = back]
N2 -> N1;
}
subgraph cluster_1 {
N3 N4 N5
label = "Title 2";
edge [dir = back]
N5 -> N4 -> N3;
}
subgraph cluster_2 {
label = "Title 3";
N6
}
N2 -> N3 [constraint=none];
N5 -> N6 [constraint=none];
N1 [label = "BA_A", fillcolor="green", shape="Msquare"]
N2 [label = "W2", fillcolor="green", shape="octagon"]
N3 [label = "BA_A", fillcolor="green", shape="Msquare"]
N4 [label = "W2", fillcolor="green", shape="octagon"]
N5 [label = "W2_ERROR", fillcolor="red", shape="octagon"]
N6 [label = "W3", fillcolor="green", shape="invtriangle"]
}