是否可以告诉GraphViz (点)尝试在不拉伸任何维度的情况下排列图形的节点?例如,如果我创建了一个包含25个节点且没有边的图,GraphViz会在一行中显示所有节点。我想要的是得到一个5x5“字段”的节点。
发布于 2015-11-06 07:34:27
结合不可见边的rank=same是你的朋友:
digraph Test
{
nodesep = 0.5; // even node distribution
node [ shape = circle, width = 0.7 ];
edge [ style = invis ];
{ rank = same; A; B; C; D; E }
{ rank = same; F; G; H; I; J }
{ rank = same; K; L; M; N; O }
{ rank = same; P; Q; R; S; T }
{ rank = same; U; V; W; X; Y }
C -> { F G H I J }
H -> { K L M N O }
M -> { P Q R S T }
R -> { U V W X Y }
}而不是最后四行,您可以简单地使用
A -> F -> K -> P -> U;对于给定的节点,这将导致相同的结果,但当节点大小变化时,可能不太稳定。

发布于 2015-11-06 00:18:04
这意味着您必须想出一个算法来指定节点的位置。
看看这个问题:How to force node position (x and y) in graphviz
或者,您可以使用不可见边:
nodeA -> nodeB [style=invis]在这两种情况下,您都必须通过指定节点的位置或将节点连接在一起来指定如何排列节点。
https://stackoverflow.com/questions/33549477
复制相似问题