我已经编写了以下graphviz代码,用于在8个节点上绘制冠图:
graph G {
u1 [label=<<I>u<SUB>1</SUB></I>>]
v1 [label=<<I>v<SUB>1</SUB></I>>]
u2 [label=<<I>u<SUB>2</SUB></I>>]
v2 [label=<<I>v<SUB>2</SUB></I>>]
u3 [label=<<I>u<SUB>3</SUB></I>>]
v3 [label=<<I>v<SUB>3</SUB></I>>]
u4 [label=<<I>u<SUB>4</SUB></I>>]
v4 [label=<<I>v<SUB>4</SUB></I>>]
u1 -- v2
u1 -- v3
u1 -- v4
u2 -- v1
u2 -- v3
u2 -- v4
u3 -- v1
u3 -- v2
u3 -- v4
u4 -- v1
u4 -- v2
u4 -- v3
}
使用dot
编译时的结果很好,但不是我想要的结果 - 我需要顶层&#39;层的顺序&#39;节点为u_1, u_2, u_3, u_4
,底层为v_1, v_2, v_3, v_4
,因此它看起来像冠图。但是,我不确定如何告诉dot
这样做。任何帮助都会很棒。
答案 0 :(得分:1)
控制节点布局的一些有用技巧包括:
combined时最有用。
在这种特殊情况下,您可以在边缘应用 constraint=false
,以免影响布局,并添加隐形边以定位节点
在节点声明和边缘列表之间插入以下位(在第9行之后):
edge[style=invis]
u1 -- v1
u2 -- v2
u3 -- v3
u4 -- v4
edge[style=visible, constraint=false]