【发布时间】:2021-11-22 18:02:23
【问题描述】:
我最近看到了下面的图片。我知道它是用 graphviz/dot 创建的,但源代码不可用(迷失了时间)。
期望的输出:
我一直在尝试找到一种方法来对源代码进行逆向工程,但是嵌套子图的水平顺序一直给我带来困难。在代码中,一个最基本的、大部分工作的示例看起来像这样
digraph G {
A
B
subgraph cluster_0 {
edge [style=invis]
subgraph cluster_0_0 {
D -> E -> F
}
C -> D -> E -> F -> G
}
A -> C
A -> B
A -> G
B -> { D E F }
}
但是,这给了我这个输出:
将newrank=true 添加到外部子图中可以得到我正在寻找的水平方向:
digraph G {
A
B
subgraph cluster_0 {
newrank=true
edge [style=invis]
subgraph cluster_0_0 {
D -> E -> F
}
C -> D -> E -> F -> G
}
A -> C
A -> B
A -> G
B -> { D E F }
}
但这会以错误的顺序设置节点:
【问题讨论】: