graphviz中的边和节点之间的距离
这是不可能 AFAIK。
唯一可用的选项是使用headclip
将边缘移到节点的中心或外部形状的边缘(如您在示例中所做的那样)。
你可以尝试一些填充,将其置于一个集群,在集群的(无形)边框添加到一个节点,有边夹:
digraph {
compound=true;
subgraph cluster1 {
style=invis;
2;
}
1 -> 2[lhead=cluster1];
}
希望有人知道了这更好的破解...
像其他答案一样,这不是一件简单的事情。使用高度,宽度,固定尺寸,labelloc和边距节点参数的组合,您可能会得到您想要的任何所需效果。保证金最好是你正在寻找扩展距离,但为了最小化它,你需要使用其他参数。例如,该图表的箭头几乎会触及'O'节点的文本。
digraph {
node [shape="none" width=.2 height=.2 fixedsize="true" labelloc="top"];
a -> O;
b -> O;
c -> O;
d -> O;
}
另外,如果你真想把在努力,你可以创建一个custom node shape,做任何你想它。
我不确定这是OP想要什么:箭头仍然感人节点的外形 - 这只会改变节点的尺寸。同样,保证金在节点标签周围增加空间,使节点变大。 – marapet 2011-05-26 09:37:28
这是一种技术,您可以考虑避免创建自定义节点形状的需要。可能有一些味道的问题,你可能需要进一步解决,以得到你想要的东西。
该技术的优点是使用HTML-like labels,改变矩形内部和外部的空间变成分别改变点的内部数量(这里是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
}
结果:
您可以更改边框和CELLBORDER参数来显示或隐藏的矩形。尽管只有1点的倍数,你可以调整它们的厚度。我已经使用WIDTH参数来强制导致所有箭头提示对齐的宽高比。否则,一些提示会遇到不可见的外部矩形的边。
也许可以使用加权:http://stackoverflow.com/questions/14236804/force-graphviz-force-distance-between-nodes – 2013-05-08 01:09:11