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

如何在graphviz中指定边的长度?,graphviz,Graphviz,在一个有向图中,如果有一个圈,graphviz使该边非常短 是否有一个参数可以让我更改循环边的长度,以便 图表看起来有点一致 digraph ER { rankdir="LR"; //orientation=landscape; node [shape=ellipse, fontsize=30]; {node [label="Original"] old;} {node [label="Final"] new;} {node [label="Intermediate"

在一个有向图中,如果有一个圈,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];
}
来自dot(1)的:


我发现以下属性“nodesep”可以解决sfdp的这个问题

对于非
dot的布局

nodesep影响单个节点上循环之间的间距,或影响一对节点之间的多条边


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

len
在点中不起作用,但您可以尝试以下技巧:

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

通过在可见循环边之前添加一组不可见循环边,可以使循环边变长,如下所示:

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 [style="invis"]
ir -> ir [style="invis"]
ir -> ir [style="invis"]
ir -> ir [style="invis"]
ir -> ir [label="validate", fontsize=30, len=f];
ir -> new [label = "finalize", fontsize=30];
}

编辑:对不起,我的答案会使边变长,但不会使您需要的自参考边变长

len在dot中不起作用,但minlen起作用


在.dot语言中,边连接两个不同等级的音符。 边的长度等于(秩差)*ranksep

默认ranksep(在图形属性中)为0.75英寸,因此相邻节点的边将为0.75英寸


若要减少边长度,请在图表属性中将ranksep设置为较小的值,因为
dot
must work
minlen
,但在这种情况下,它无论如何不起作用:(从同一手册页上,它上面的行显示:(neato和fdp特定属性)。由于
fdp
neato
专门用于无向图,而不是有向图,
len
不适用于此处。该链接被断开,就像此用户要链接到的内容:或类似的内容?如果我希望边缘非常短怎么办?如
label=“
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 [style="invis"]
ir -> ir [style="invis"]
ir -> ir [style="invis"]
ir -> ir [style="invis"]
ir -> ir [label="validate", fontsize=30, len=f];
ir -> new [label = "finalize", fontsize=30];
}
x->y
[minlen=5]