gpt4 book ai didi

graphviz - child 在graphviz树中排序

转载 作者:行者123 更新时间:2023-12-02 03:46:30 25 4
gpt4 key购买 nike

我有以下树:

digraph G {
subgraph cluster0{
37[label="+"];
42[label="a"];
44[label="b"];
47[label="*"];
46[label="c"];
49[label="d"];
51[label="e"];
53[label="f"];
55[label="g"];
57[label="h"];
61[label="*"];
60[label="i"];
63[label="j"];
37 -> 42[label="c"];
37 -> 44[label="c"];
37 -> 47[label="c"];
37 -> 61[label="c"];
42 -> 37[label="p"];
44 -> 37[label="p"];
47 -> 37[label="p"];
47 -> 46[label="c"];
47 -> 49[label="c"];
47 -> 51[label="c"];
47 -> 53[label="c"];
47 -> 55[label="c"];
47 -> 57[label="c"];
46 -> 47[label="p"];
49 -> 47[label="p"];
51 -> 47[label="p"];
53 -> 47[label="p"];
55 -> 47[label="p"];
57 -> 47[label="p"];
61 -> 37[label="p"];
61 -> 60[label="c"];
61 -> 63[label="c"];
60 -> 61[label="p"];
63 -> 61[label="p"];
}
}

输出在这里: http://i.imgur.com/q1qXkCT.png

child 排在第一位 *子树是: G H C D E F ,但应该是 C D E F G H .
我注意到如果我删除 subgraph cluster0{顺序是对的,但我不能这样做。
你能提出任何其他解决方案吗?

最佳答案

当没有其他约束时,Graphviz 尝试保留节点的词汇顺序。但是,边缘标签会影响放置,因为它们会占用空间并可以插入节点。
如果您有一个必不可少的特定订单,请尝试类似

{ rank = same; 
46 -> 49 -> 51 -> 53 -> 55 -> 57 [style = invis];
}
将额外的排序约束引入图中。
但是,您需要小心这一点,因为它会以非常难以预测的方式扭曲更复杂的图形。
集群使更大图中的问题进一步复杂化,因为它们隐含地试图使子图更紧凑并引入非集群成员无法跨越的边界框。

关于graphviz - child 在graphviz树中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com