如何在graphviz中指定边的长度?

A. *_* K. 19 graphviz

在有向图中,如果存在周期,则graphviz使该边缘非常短.

是否有一个参数可以让我改变循环边的长度,这样图形看起来有点均匀.

digraph ER {
  rankdir="LR";
  //orientation=landscape;
    node [shape=ellipse, fontsize=30];
  {node [label="Original"] old;}
  {node [label="Final"] new;}
  {node [label="Intermediate"] ir;}

old -> ir [label="suggest", fontsize=30];
ir -> ir [label="validate", fontsize=30, len=f];
ir -> new [label = "finalize", fontsize=30];
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

com*_*eye 10

编辑:抱歉,我的回答会使边变长,但不会使您需要的自引用边变长。

len在 dot 中不起作用,但minlen可以。

https://www.graphviz.org/doc/info/attrs.html#d:minlen

x->y
[minlen=5]
Run Code Online (Sandbox Code Playgroud)


wen*_*ner 7

len 在dot中不起作用,但你可以尝试这个技巧:

digraph G {
rankdir=LR
a->b[dir=both]
b->c[dir=both,label="        "]// Just use the space to increase the edge length
}
Run Code Online (Sandbox Code Playgroud)

  • 如果我希望边缘很短怎么办?像`标签=“”`? (2认同)

小智 5

我发现以下属性nodesep可以使用 sfdp 解决此问题。

来自nodesep | 图形可视化

对于除以下以外的布局dot

Nodesep 影响单个节点上的循环之间的间距,或一对节点之间的多重边之间的间距。

请注意,这是一个图形属性,因此图形中所有边的值都相同。