我有一个相当受限的点图,它没有按照我想要的方式显示。
这些图旨在表示动态贝叶斯网络并具有任意数量的时间片。我需要一个时间片中的所有节点在同一子图中垂直排序,并且每个子图水平对齐并且最好等距。
下面是由本问题底部的代码生成的困惑的 DBN - 这是一个相对简单的示例,但应该可以说明问题。我希望从“t-1”到“t”子图和“t”到“t+1”子图的弧看起来相同,并避免像“c(t-1)”到“这样的循环弧” e(t)' 并且子图也等距。
将“c(t-1)”的权重调整为“e(t)”不会执行任何操作,并且生成此点文件的代码应该是通用的。
如果有更好的程序来解决此类问题,我不会选择 dot。
生成图表的代码是:
digraph G {
1 [ label = "a(t-1)" ];
2 [ label = "b(t-1)" ];
3 [ label = "c(t-1)" ];
4 [ label = "d(t-1)" ];
5 [ label = "e(t-1)" ];
6 [ label = "a(t)" ];
7 [ label = "b(t)" ];
8 [ label = "c(t)" ];
9 [ label = "d(t)" ];
10 [ label = "e(t)" ];
11 [ label = "a(t+1)" ];
12 [ label = "b(t+1)" ];
13 [ label = "c(t+1)" ];
14 [ label = "d(t+1)" ];
15 [ label = "e(t+1)" ];
rankdir=TB
edge[style=invis];
{
rank=same;
K_1 [style=invis] ;
K_2 [style=invis] ;
K_3 [style=invis] ;
K_1 -> K_2 ;
K_2 -> K_3 ;
}
subgraph cluster1 {
style=dotted ;
1 -> 2;
2 -> 3;
3 -> 4;
4 -> 5;
label="t-1" ;
}
subgraph cluster2 {
style=dotted ;
6 -> 7;
7 -> 8;
8 -> 9;
9 -> 10;
label="t" ;
}
subgraph cluster3 {
style=dotted ;
11 -> 12;
12 -> 13;
13 -> 14;
14 -> 15;
label="t+1" ;
}
K_3 -> 11[style=invis] ;
K_2 -> 6[style=invis] ;
K_1 -> 1[style=invis] ;
edge[constraint=false,style=solid] ;
3 -> 10 ;
8 -> 15 ;
}
最佳答案
我自己找到了答案。
将排名方向更改为 LR,并使用出现顺序在子图中进行排序。
digraph G {
rankdir=LR
edge[style=invis];
subgraph cluster1 {
style=dotted ;
rank=same ;
K_1 [ style=invis ] ;
1 [ label = "a(t-1)" ];
2 [ label = "b(t-1)" ];
3 [ label = "c(t-1)" ];
4 [ label = "d(t-1)" ];
5 [ label = "e(t-1)" ];
label="t-1" ;
}
subgraph cluster2 {
style=dotted ;
rank=same ;
K_2 [style=invis] ;
6 [ label = "a(t)" ];
7 [ label = "b(t)" ];
8 [ label = "c(t)" ];
9 [ label = "d(t)" ];
10 [ label = "e(t)" ];
label="t" ;
}
subgraph cluster3 {
style=dotted ;
rank=same ;
K_3 [style=invis] ;
11 [ label = "a(t+1)" ];
12 [ label = "b(t+1)" ];
13 [ label = "c(t+1)" ];
14 [ label = "d(t+1)" ];
15 [ label = "e(t+1)" ];
label="t+1" ;
}
K_1 -> K_2 -> K_3 ;
edge[constraint=false,style=solid] ;
3 -> 10 ;
8 -> 15 ;
}
关于graphviz - 我可以最小化点图中的弧长吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528413/