Rank属性让我很困惑

nir*_*235 32 dot graphviz

边缘上的Rank属性具有五个值"same","min","source","max","sink".除了"相同",我不知道何时使用其他值.

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}
Run Code Online (Sandbox Code Playgroud)

通过对我的vim环境的测试,我可以发现这些值存在一些差异.但不知道它们到底是什么.

Dan*_*Dan 41

将等级留空或使用等级=相同的更常用.这四个通常只在特殊情况下使用.

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

请考虑以下图表摘要:

{ rank=source; a -> b; }
{ rank=same;   c -> d; }
Run Code Online (Sandbox Code Playgroud)

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

资源


如果将source更改为min,则只能获得一行.a - > b将在c - > d的左边,全部在最低等级.

{ rank=min;    a -> b; }
{ rank=same;   c -> d; }
Run Code Online (Sandbox Code Playgroud)

敏

Max和sink是图表底部的等价物.

  • 如果有人决定为graphviz编写一个好的文档并将其出售-他将在一个月内成为亿万富翁。 (4认同)