graphviz中的边和节点之间的距离

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

Diagram of distance between edges and nodes

phihag

也许可以使用加权:http://stackoverflow.com/questions/14236804/force-graphviz-force-distance-between-nodes –

回答

这是不可能 AFAIK。

唯一可用的选项是使用headclip将边缘移到节点的中心或外部形状的边缘(如您在示例中所做的那样)。

你可以尝试一些填充,将其置于一个集群,在集群的(无形)边框添加到一个节点,有边夹:

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

希望有人知道了这更好的破解...

marapet

像其他答案一样,这不是一件简单的事情。使用高度,宽度,固定尺寸,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,做任何你想它。

Dan

我不确定这是OP想要什么:箭头仍然感人节点的外形 - 这只会改变节点的尺寸。同样,保证金在节点标签周围增加空间,使节点变大。 –

这是一种技术,您可以考虑避免创建自定义节点形状的需要。可能有一些味道的问题,你可能需要进一步解决,以得到你想要的东西。

该技术的优点是使用HTML-like labels,改变矩形内部和外部的空间变成分别改变点的内部数量(这里是4)和外部数量的点(这里是16)的简单事情。

graphviz中的边和节点之间的距离