【问题标题】:how to control edge placements and labels in dot (graphviz)如何控制点中的边缘位置和标签(graphviz)
【发布时间】:2020-02-21 00:22:34
【问题描述】:

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

我该怎么做?

【问题讨论】:

    标签: label graphviz dot directed-graph edges


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。删除 rankdir 确实改善了一些事情,但这很烦人。我喜欢以前的节点放置。
    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2017-06-17
    • 2010-12-20
    • 2012-09-05
    相关资源
    最近更新 更多