我无法控制graphviz的布局。 试图生成一个简单的自动机。 来源:
digraph mygraph {
rankdir=LR;
size="13,13"
node [shape = circle];
init -> Ready [ label = "" ];
Ready -> P1 [ label = "t<T\n----TexT----" ];
P1 -> Ready [ label = "t>T" ];
P1 -> B1 [ label = "t<T" ];
B1 -> P1 [ label = "----TexT----" ];
B1 -> U1 [ label = "----TexT----" ];
Ready -> P2 [ label = "t<T\n----TexT----" ];
P2 -> Ready [ label = "t>T" ];
P2 -> B2 [ label = "t<T" ];
B2 -> P2 [ label = "----TexT----" ];
B2 -> U2 [ label = "----TexT----" ];
U1 -> Ready [ label = "----TexT----", constraint=false];
U2 -> Ready [ label = "----TexT----", constraint=false];
P1 -> P2 [ label = "t<T\n----TexT----", constraint=false];
P2 -> P1 [ label = "t<T\n----TexT----", constraint=false];
}
麻烦的是,标签交织在一起。我可能需要: 1.间距更大 2.向上移动一些边缘 3.控制标签放置
我该怎么办?
答案 0 :(得分:1)
由于冲突发生在相同方向(P1和P2)上由点放置的节点之间的相反方向上的垂直边缘上,因此可以使用垂直排名方向(删除“rankdir = LR”行)以使标签为这些特定边缘一个放在另一个下面而不是并排放置。
当然,这不是解决这类问题的普遍办法,但应该有助于此而不会不必要地膨胀图形(通过“nodesep”增加节点分离)。