0

我无法控制 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. 控制标签放置

我该怎么做? 图.png

4

1 回答 1

1

由于冲突发生在由点放置在同一等级(P1和P2)上的节点之间的垂直边缘上,您可以使用垂直等级方向(删除“rankdir = LR”行),以便这些特定边缘的标签是将一个放在另一个下方,而不是并排放置。

当然,这不是解决此类问题的通用方法,但在这里应该有所帮助,而不会不必要地使图形膨胀(通过“nodesep”增加节点分离就可以了)。

于 2012-06-05T13:15:45.950 回答