You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Graphviz中实现子图与MEMOR节点垂直对齐及LR布局优化

解决Graphviz节点对齐问题

要实现ST系列节点在MEMOR下方垂直排列、READING在最右侧的效果,你可以通过嵌套子图控制节点排列方向,结合rank约束调整布局,修改后的代码如下:

Digraph {
  layout = dot
  rankdir=LR;

  ESCS[shape = box]
  Gender[label = "Gender \n (female)", shape = box]

  {ESCS, Gender} -> MEMOR

  # 确保MEMOR与ST节点处于同一水平列,ST节点内部垂直排列
  {
    rank=same;
    MEMOR;
    subgraph {
      rank=TB; # 子图内节点从上到下垂直排列
      ST27Q01[shape = box]
      ST27Q03[shape = box]
      ST27Q05[shape = box]
      ST27Q07[shape = box]
    }
  }

  # 建立MEMOR到ST系列节点的连接
  MEMOR -> ST27Q01
  MEMOR -> ST27Q03
  MEMOR -> ST27Q05
  MEMOR -> ST27Q07

  # 强制READING处于最右侧(最高水平rank)
  READING[shape = box, rank = "max"]
  MEMOR -> READING
}

关键调整说明:

  • 嵌套子图:外层子图用rank=same锁定MEMOR和ST节点的水平位置(同一列),内层子图用rank=TB让ST节点垂直排布。
  • 移除原不可见cluster与隐形边:这些设置会强制ST节点水平排列,与需求冲突。
  • 保留rank="max":确保READING节点固定在整个图的最右侧。

内容的提问来源于stack exchange,提问作者Victor Feagins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:42:03