顶部对齐节点

Dav*_*vis 5 alignment graphviz nodes

问题

下图显示了组织结构图:

不需要的输出

这些Full Name盒子沿着它们的中心对齐。然而,所需的布局是将框沿顶部对齐:

所需输出

源代码

该图的代码如下:

digraph G {
  fixedwidth = true;

  node [
    shape="box",
    style="rounded",
    penwidth = 1,
    width=2.0,
    fontname = "Arial",
    fontsize = 12
  ];

  edge [
    color="#142b30",
    arrowhead="vee",
    arrowsize=0.75,
    penwidth = 2,
    weight=1.0
  ];

  A1 [ label = <
    <TABLE BORDER="0" CELLSPACING="5">
      <TR>
        <TD><FONT POINT-SIZE="16">Top Level</FONT></TD>
      </TR>
      <TR>
        <TD><FONT POINT-SIZE="18">Owner</FONT></TD>
      </TR>
    </TABLE>>
  ];

  B3 [ label = <
    <TABLE BORDER="0" CELLSPACING="5">
      <TR>
        <TD><FONT POINT-SIZE="12">Second Level<BR/>(1)</FONT></TD>
      </TR>
      <TR>
        <TD><FONT POINT-SIZE="14">Owner</FONT></TD>
      </TR>
    </TABLE>>
  ];

  B4 [ label = <
    <TABLE BORDER="0" CELLSPACING="5">
      <TR>
        <TD><FONT POINT-SIZE="12">Second Level<BR/>(2)</FONT></TD>
      </TR>
      <TR>
        <TD><FONT POINT-SIZE="14">Owner</FONT></TD>
      </TR>
    </TABLE>>
  ];

  B5 [ label = <
    <TABLE BORDER="0" CELLSPACING="5">
      <TR>
        <TD><FONT POINT-SIZE="12">Second Level<BR/>(3)</FONT></TD>
      </TR>
      <TR>
        <TD><FONT POINT-SIZE="14">Owner</FONT></TD>
      </TR>
    </TABLE>>
  ];

  B6 [ label = <
    <TABLE BORDER="0" CELLSPACING="5">
      <TR>
        <TD><FONT POINT-SIZE="12">Second Level<BR/>(4)</FONT></TD>
      </TR>
      <TR>
        <TD><FONT POINT-SIZE="14">Owner</FONT></TD>
      </TR>
    </TABLE>>
  ];

  C4 [ label = <
    <TABLE BORDER="0" CELLPADDING="0" ALIGN="LEFT">
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
    </TABLE>>
  ];

  C5 [ label = <
    <TABLE BORDER="0" CELLPADDING="0" ALIGN="LEFT">
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
    </TABLE>>
  ];

  C6 [ label = <
    <TABLE BORDER="0" CELLPADDING="0" ALIGN="LEFT">
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
    </TABLE>>
  ];

  C7 [ label = <
    <TABLE BORDER="0" CELLPADDING="0" ALIGN="LEFT">
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
      <TR>
        <TD ALIGN="LEFT"><FONT POINT-SIZE="10">Full Name</FONT></TD>
      </TR>
    </TABLE>>
  ];

  { rank = same; B3; B4; B5; B6; }

  A1 -> B3:n;
  A1 -> B4:n;
  A1 -> B5:n;
  A1 -> B6:n;

  { rank = same; C4; C5; C6; C7; }

  B3 -> C4;
  B4 -> C5;
  B5 -> C6;
  B6 -> C7;
}
Run Code Online (Sandbox Code Playgroud)

问题

Full Name您将如何沿顶部对齐这些框?

谢谢你!

rya*_*ign 1

这基本上是同一个问题:

graphviz:左/右对齐节点而不是居中?

不幸的是,虽然我已经使用 Graphviz 大约 8 年了,但我不确定如何实现你想要的。