graphviz中边和节点之间的距离

graphviz中边和节点之间的距离,graphviz,dot,Graphviz,Dot,如何配置边和节点之间的距离(红色),即节点的外部形状(蓝色) 这是不可能的 唯一可用的选项是使用headclip使边缘指向节点的中心或外部形状的边缘(如您在示例中所做的) 您可以尝试将节点放入簇中,并在簇的(不可见)边界处剪裁边缘,从而向节点添加一些填充: digraph { compound=true; subgraph cluster1 { style=invis; 2; } 1 -> 2[lhead=cluster1]; }

如何配置边和节点之间的距离(红色),即节点的外部形状(蓝色)

这是不可能的

唯一可用的选项是使用
headclip
使边缘指向节点的中心或外部形状的边缘(如您在示例中所做的)

您可以尝试将节点放入簇中,并在簇的(不可见)边界处剪裁边缘,从而向节点添加一些填充:

digraph {
  compound=true;
  subgraph cluster1 {
        style=invis;
        2;
    }
    1 -> 2[lhead=cluster1];
}


希望有人知道一个更好的破解方法…

就像另一个答案所说的,这真的不是一件容易的事。使用高度、宽度、fixedsize、labelloc和边距节点参数的组合,您可能会获得想要的任何效果。Margin最好的方法是扩展该距离,但要最小化它,需要使用其他参数。例如,此图形的箭头几乎接触到“O”节点的文本

digraph {
  node [shape="none" width=.2 height=.2 fixedsize="true" labelloc="top"];

  a -> O;
  b -> O;
  c -> O;
  d -> O;
}


可选地,如果你真的想付出努力,你可以创建一个,并做你想做的任何事情。

< P>这是一个你可以考虑的技术,避免了创建自定义节点形状的需要。为了得到你想要的东西,你可能需要进一步解决一些品味问题

使用此技术的优点是,改变矩形内外的空间变得简单,只需分别改变内部点数(此处为4)和外部点数(此处为16)

digraph {

node [shape=none]

O [label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="16" CELLPADDING="4">
<TR><TD WIDTH="70">\N</TD></TR>
</TABLE>
>]

{a,b,c,d} -> O

}
有向图{
节点[形状=无]
O[标签=<
\N
>]
{a,b,c,d}->O
}
结果:


您可以更改BORDER和CELLBORDER参数以显示或隐藏矩形。您可以调整它们的厚度,尽管只有1点的倍数。我使用了WIDTH参数强制设置一个宽度与高度的比率,该比率会导致所有箭头尖端对齐。否则,一些提示将与不可见的外部矩形的边相交。

我不确定OP想要的是什么:箭头仍在接触节点的外部形状-这只会更改节点的尺寸。同样,边距会在节点标签周围增加空间,使节点更大。可能会使用权重: