如何解决graphviz中边缘和节点之间的距离
| 如何配置边缘与节点之间的距离(红色),即节点的外形(蓝色)?解决方法
您可以考虑使用以下一种技术来避免创建自定义节点形状。为了确切地得到您想要的东西,您可能需要进一步解决一些口味问题。
使用类似HTML的标签的此技术的优势在于,改变矩形内部和外部的空间变得很简单,只需更改内部点数(此处为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
}
结果:
您可以更改BORDER和CELLBORDER参数以显示或隐藏矩形。您可以调整其厚度,尽管只能为1点的倍数。我使用了WIDTH参数来强制宽度与高度的比率,从而导致所有箭头的对齐。否则,一些技巧会遇到不可见的外部矩形的边。
,就像其他答案所说的那样,这并不是一件容易的事。结合使用高度,宽度,固定大小,标签位置和边距节点参数,您可能会得到想要的任何效果。边距是最好的选择,您正在寻找扩大该距离的方法,但是要使其最小化,则需要使用其他参数。例如,此图的箭头几乎触及\'O \'节点的文本。
digraph {
node [shape=\"none\" width=.2 height=.2 fixedsize=\"true\" labelloc=\"top\"];
a -> O;
b -> O;
c -> O;
d -> O;
}
或者,如果您真的想付出努力,则可以创建一个自定义节点形状,然后执行您想做的任何事情。
,这是不可能的AFAIK。
唯一可用的选项是使用headclip
将边缘移到节点的中心或外部形状的边缘(如您在示例中所做的那样)。
您可以尝试通过将某些填充填充到节点中,并将其边缘放置在群集的(不可见)边界上,从而为节点添加一些填充:
digraph {
compound=true;
subgraph cluster1 {
style=invis;
2;
}
1 -> 2[lhead=cluster1];
}
希望有人对此有更好的了解...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。