Graphviz - 如何更改子图中子图中的rankdir?

问题描述 投票:0回答:1

我有下面的图表。我对它很满意,除了红色矩形内的节点:

(这是 Graphviz 可视化编辑器链接

我宁愿让节点“hollow”和“hohl”彼此重叠,如下所示: (这是 Graphviz 可视化编辑器链接])

尽管使用了

,但每次添加嵌套子图的尝试均未成功
  • newrank=true
    ,
  • compound=true
    ,
  • rank=same
  • rankdir="TB"

有人可以提供建议吗?

额外问题:我还希望“兔子洞”节点水平居中,但我也没有找到如何做到这一点。

cluster-computing graphviz ranking dot subgraph
1个回答
0
投票
  • 重新排列所有代码以更好地理解它(让我的眼睛更容易理解)。
  • 重新排名(排名=相同
  • 使用minlen将底部3个节点推回到底部
  • 使用 group 属性来鼓励垂直对齐
digraph {
  fontname="Helvetica,Arial,sans-serif"
  fontsize=18
  rankdir="TB"
  
  node [fontname="Helvetica,Arial,sans-serif"]
  edge [fontname="Helvetica,Arial,sans-serif"]
  layout=dot
  
  rabbithole [group=R label=<<FONT POINT-SIZE="30">"rabbit hole"</FONT>> shape=rectangle]
  rabbit     [label="\"rabbit\"\n(origin unknown)"]
  rabbithole -> rabbit
  rabbithole -> hole
  
  {rank=sink  // keep on same rank
    hulahoop [label="\"Hula Hoop\""]
    holy     [label="\"holy\""]
    hell     [label="\"hell\""]
  }
  
  hulaz -> hulahoop [minlen=2 dir=none label="unrelated"]  // push to bottom
  hulaz -> holy [dir=none label="unrelated"]
  hulaz -> hell [dir=none label="unrelated"]
   
  subgraph cluster_hulaz{
    hole [group=R label="\"hole\""]
  
    hulaz  [group=R label=<<I><FONT POINT-SIZE="20">"hulaz"</FONT></I><BR/>(PGmc root,<BR/>"hollow")>, shape=doublecircle]
    hollow [group=2 label="\"hollow\""]
    hohl   [group=2 label="\"hohl\"\n(de, \"hollow\")"]
    Höhle  [label="\"Höhle\"\n(de, \"cave\")"]
  
      { rank=same
      hole hollow
      }
      { rank=same
      hulaz  hohl Höhle
      }
      hole -> hulaz [dir=none]
      hulaz -> hollow [dir=none]
      hulaz -> hohl [dir=none]
      hollow -> hohl [dir=none]
      hohl -> Höhle [dir=none]
  }
}

给予:

© www.soinside.com 2019 - 2024. All rights reserved.