在几个 hacky/复制粘贴 graphviz 图之后,我正在尝试认真理解点语言,我有一个非常基本的问题。 以下点码:
digraph G
{
subgraph cluster_obj
{
A [label="A"]
B [label="B"]
}
}
...呈现如下:
我从graphviz文档中了解到,
rankdir=LR
仅在图形级别使用,旨在从左到右排列图形(我假设这意味着从左排序子图)向右。
那么,为什么在上面的简单图中添加
rankdir=LR
会导致子图中的节点从上到下排列?
digraph G
{
rankdir=LR
subgraph cluster_obj
{
A [label="A"]
B [label="B"]
}
}
我一直在阅读 graphviz.org 官方文档、各种 Stack Overflow 文章以及网络搜索结果中有关 graphviz/dot 语言的内容,但我还没有形成关于如何创建和安排的全面工作知识图表将。这个问题的灵感来自this Stack Overflow答案,它似乎隐含地依赖于
rankdir=LR
来实现其节点2
和3
的所需安排(这对OP的问题至关重要)——但在那个答案中,正如本问题中的示例所示,我没有看到一种模式可以揭示节点和子图从左到右与从上到下排列的时间和原因。
好问题。您认为rankdir 的目的是为了
ordering subgraphs left-to-right
的假设是不正确的。 Rankdir 指定ranking 方向。 (抱歉循环定义,请继续阅读)附注请注意,ranking仅适用于dot布局引擎。其他 Graphviz 引擎基于其他模型工作。