Graphviz:禁止水平边,始终显示垂直方向
我有一个有向无环图,我正试图用Graphviz的Graphviz:禁止水平边,始终显示垂直方向,graphviz,directed-acyclic-graphs,Graphviz,Directed Acyclic Graphs,我有一个有向无环图,我正试图用Graphviz的dot可视化它。默认情况下,它是从上到下排列的 通常,所有定向边的头部都低于尾部。但在某些情况下,它们被绘制为水平直线部分,即头部和尾部处于同一水平。在我的例子中,这发生在我定义子图簇之后 他们的方法是禁止这一点,并迫使它始终定位节点,使箭头指向“向下”吗 样本来源: digraph { rankdir=TB; subgraph cluster_1 { "8"; "7"; "9"; "11"; "10" } subgraph clus
dot
可视化它。默认情况下,它是从上到下排列的
通常,所有定向边的头部都低于尾部。但在某些情况下,它们被绘制为水平直线部分,即头部和尾部处于同一水平。在我的例子中,这发生在我定义子图簇之后
他们的方法是禁止这一点,并迫使它始终定位节点,使箭头指向“向下”吗
样本来源:
digraph {
rankdir=TB;
subgraph cluster_1 { "8"; "7"; "9"; "11"; "10" }
subgraph cluster_2 { "3"; "4"; "5"; }
"1" -> "3";
"2" -> "5";
"3" -> "6";
"3" -> "5";
"2" -> "8";
"2" -> "4";
"2" -> "3";
"2" -> "6";
"2" -> "7";
"1" -> "8";
"7" -> "8";
"4" -> "6";
"6" -> "10";
"3" -> "11";
"7" -> "10";
"7" -> "6";
"1" -> "2";
"6" -> "5";
"7" -> "9";
"7" -> "5";
"4" -> "5";
"6" -> "8";
"3" -> "4";
"10" -> "11";
"4" -> "11";
"3" -> "8";
"8" -> "9";
"6" -> "9";
"9" -> "10";
"3" -> "10";
"3" -> "7";
}
这种行为是由固定内部节点秩的集群引起的。”来自外部边缘的“力”会水平拉动节点,但对列组没有影响 必须避免簇或插入不可见的节点和边 显示秩修复的最小示例
digraph {
subgraph cluster_1 {
1
3
}
1 -> 2
2 -> 3
}
这种行为是由固定内部节点列组的集群引起的。”来自外部边缘的“力”会水平拉动节点,但对列组没有影响 必须避免簇或插入不可见的节点和边 显示秩修复的最小示例
digraph {
subgraph cluster_1 {
1
3
}
1 -> 2
2 -> 3
}
我知道这是一个老问题,但我将提供以下答案供将来参考: 您可以使用
newrank=true代码>根据以下操作:
原始的点排序算法是在聚类上递归的。这可以产生更少的列组和更紧凑的布局,但有时会以头部节点放置在比尾部节点更高的列组上为代价。它还假设一个节点没有约束在单独的、不兼容的子图中。例如,节点不能在群集中,也不能受与不在群集中的节点相同的秩约束
如果newrank=true,则排名算法只进行一次全局排名,忽略集群。这允许节点受到多个约束。秩约束通常优先于边约束
因此,您的源代码仅更改如下:
digraph {
rankdir=TB;
newrank = true;
...
对于这个例子,结果会更好:
我知道这是一个老问题,但我将提供以下答案供将来参考:
您可以使用newrank=true代码>根据以下操作:
原始的点排序算法是在聚类上递归的。这可以产生更少的列组和更紧凑的布局,但有时会以头部节点放置在比尾部节点更高的列组上为代价。它还假设一个节点没有约束在单独的、不兼容的子图中。例如,节点不能在群集中,也不能受与不在群集中的节点相同的秩约束
如果newrank=true,则排名算法只进行一次全局排名,忽略集群。这允许节点受到多个约束。秩约束通常优先于边约束
因此,您的源代码仅更改如下:
digraph {
rankdir=TB;
newrank = true;
...
对于这个例子,结果会更好:
不要以为老问题的答案不会被欣赏!理想的StackOverflow问题/答案将对许多未来读者有用,甚至是几年后。感谢您添加此图像。有趣的是,默认的排名算法从右到左排列集群,而较新的算法从左到右排列集群。不要假设旧问题的答案不会被欣赏!理想的StackOverflow问题/答案将对许多未来读者有用,甚至是几年后。感谢您添加此图像。有趣的是,默认的排序算法从右到左排序集群,而较新的算法从左到右排序集群