在点 graphviz 中从左到右排序框
Order boxes left to right in dot graphviz
我有这个gv代码,
我想要水平顺序:
12 13 14 15 23 24
但我得到:
23 13 12 24 14 15
graph "tree" {
node [shape=plaintext];
1 [label = "1"]
2 [label = "2"]
3 [label = "3"]
4 [label = "4"]
5 [label = "5"]
12 [label = "12"]
13 [label = "13"]
14 [label = "14"]
15 [label = "15"]
23 [label = "23"]
24 [label = "24"]
1 -- 12;
2 -- 12;
1 -- 13;
3 -- 13;
1 -- 14;
4 -- 14;
1 -- 15;
5 -- 15;
2 -- 23;
3 -- 23;
2 -- 24;
4 -- 24;}
解决方案: 不适用于这种情况(排序节点而不是边)。
如果我添加:
{rank = same; 12 13 14 15 23 24; rankdir=LR;}
我们得到相同的无序节点:
png 文件制作于:
dot -T png test.gv > test.png
最简单的是添加 'invisible'(白底白字,无箭头)边。
这将鼓励点按顺序对齐节点。
graph "tree" {
node [shape=plaintext];
1 [label = "1"]
2 [label = "2"]
3 [label = "3"]
4 [label = "4"]
5 [label = "5"]
12 [label = "12"]
13 [label = "13"]
14 [label = "14"]
15 [label = "15"]
23 [label = "23"]
24 [label = "24"]
1 -- 12;
2 -- 12;
1 -- 13;
3 -- 13;
1 -- 14;
4 -- 14;
1 -- 15;
5 -- 15;
2 -- 23;
3 -- 23;
2 -- 24;
4 -- 24;
// 'white' (invisible on white background) edges, weight to encourage order
// results in tidiest graph with horizontal nodes in desired order.
edge [color=white,weight=4,arrowhead=none,arrowtail=none];
12 -- 13 -- 14 -- 15 -- 23 -- 24 -- 25 -- 34 -- 35 -- 45;
{rank = same; 12 13 14 15 23 24 25 34 35 45; rankdir=LR;}
}
或者更简单地说:
graph "tree" {
node[shape=plaintext]
1 -- {12 13 14 15}
2 -- {12 23 24}
3 -- {13 23}
4 -- {14 24}
5 -- 15;
{
rank = same;
12 -- 13 -- 14 -- 15 -- 23 -- 24 [color=invis]
}
}
我有这个gv代码,
我想要水平顺序: 12 13 14 15 23 24
但我得到:
23 13 12 24 14 15
graph "tree" {
node [shape=plaintext];
1 [label = "1"]
2 [label = "2"]
3 [label = "3"]
4 [label = "4"]
5 [label = "5"]
12 [label = "12"]
13 [label = "13"]
14 [label = "14"]
15 [label = "15"]
23 [label = "23"]
24 [label = "24"]
1 -- 12;
2 -- 12;
1 -- 13;
3 -- 13;
1 -- 14;
4 -- 14;
1 -- 15;
5 -- 15;
2 -- 23;
3 -- 23;
2 -- 24;
4 -- 24;}
解决方案:
如果我添加:
{rank = same; 12 13 14 15 23 24; rankdir=LR;}
我们得到相同的无序节点:
png 文件制作于:
dot -T png test.gv > test.png
最简单的是添加 'invisible'(白底白字,无箭头)边。
这将鼓励点按顺序对齐节点。
graph "tree" {
node [shape=plaintext];
1 [label = "1"]
2 [label = "2"]
3 [label = "3"]
4 [label = "4"]
5 [label = "5"]
12 [label = "12"]
13 [label = "13"]
14 [label = "14"]
15 [label = "15"]
23 [label = "23"]
24 [label = "24"]
1 -- 12;
2 -- 12;
1 -- 13;
3 -- 13;
1 -- 14;
4 -- 14;
1 -- 15;
5 -- 15;
2 -- 23;
3 -- 23;
2 -- 24;
4 -- 24;
// 'white' (invisible on white background) edges, weight to encourage order
// results in tidiest graph with horizontal nodes in desired order.
edge [color=white,weight=4,arrowhead=none,arrowtail=none];
12 -- 13 -- 14 -- 15 -- 23 -- 24 -- 25 -- 34 -- 35 -- 45;
{rank = same; 12 13 14 15 23 24 25 34 35 45; rankdir=LR;}
}
或者更简单地说:
graph "tree" {
node[shape=plaintext]
1 -- {12 13 14 15}
2 -- {12 23 24}
3 -- {13 23}
4 -- {14 24}
5 -- 15;
{
rank = same;
12 -- 13 -- 14 -- 15 -- 23 -- 24 [color=invis]
}
}