graphviz - 等级属性让我感到困惑

标签 graphviz dot

边上的等级属性有五个值“相同”、“最小”、“源”、“最大”、“汇”。
除了“相同”,我不知道何时使用其他值。

min
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=min;A;B}
  B->D
  A->B;
\end{dotpic}

max
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=max;A;B}
  B->D
  A->B;
\end{dotpic}

source
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=source;A;B}
  B->D
  A->B;
\end{dotpic}

sink
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=sink;A;B}
  B->D
  A->B;
\end{dotpic}

通过对我的 vim 环境的测试,我可以意识到这些值之间存在一些差异。
但不知道它们到底是干什么用的。

最佳答案

将 rank 留空或使用 rank=same 的使用频率要高得多。这其他四种通常只在特殊情况下使用。

单独使用时,min 和 source 具有相同的功能:将所有这些节点置于最小等级(TB 图的顶行)。它们之间的区别在于 min 将允许其他子图处于最小等级。源不会。 Source 只允许 min 或 source 的其他子图处于最小等级。

考虑以下图形片段:

{ rank=source; a -> b; }
{ rank=same;   c -> d; }

你最终会得到 2 行。 a -> b 将高于 c -> d。

Source

如果将 source 更改为 min,则只会获得一行。 a -> b 将在 c -> d 的左边,都在最小等级中。
{ rank=min;    a -> b; }
{ rank=same;   c -> d; }

Min

Max 和 sink 是图形底部的等效项。

关于graphviz - 等级属性让我感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149834/

相关文章:

形状=圆形的节点的大小

binary-tree - GraphViz二叉树左右子级

graphviz 树布局

graphviz - GraphViz 中的弧形图布局

graphviz - 如何在主图中以点形式布置多个子图?

python - 在 Graphviz 中删除一个节点

scikit-learn - 如何可视化 sklearn GradientBoostingClassifier?

python - 未找到 GraphViz 的可执行文件 - 为什么通过 pip 安装 graphViz 后没有安装可执行文件?

graphviz - Graphviz 中的集群不会对称分布

graphviz - 如何使用 GraphViz 点制作斜体节点标签?