相关疑难解决方法(0)

Graphviz:在左侧对齐节点而不是居中(带答案)

我制作了一个 python 脚本来使用 graphviz 绘制目录结构。为了正确渲染图表,我使用rankdir=LR。然而,具有相同等级的节点居中。

请参见下图。

图表结果

如您所见,“.gitignore”、“.travis.yml”等节点由于其标签而没有相同的宽度。我希望相同等级的节点在左侧对齐,无论其宽度如何。

我看过其他类似的相关帖子,我不想强制节点宽度。

还有其他方法吗?

预先感谢您的回答并祝您有美好的一天。

PS:这是我的图形代码示例:

strict digraph projetcStructure { 
    graph [overlap=false, splines=ortho, ranksep=0.05]
    edge[arrowhead=none, color=black]
    node[fontname="DejaVu Sans Mono", fontsize=14]
    "e0ec0f89f0745e25b725768b304be71e" [shape=folder, style=filled, colorscheme=ylgnbu3, label=<<TABLE><TR><TD WIDTH="20" HEIGHT="20" FIXEDSIZE="TRUE"><IMG SRC="/mnt/e/Documents/3eme/TechnicalReport/foldertree/octicons/file-directory.png" SCALE="TRUE"/></TD><TD>TechnicalReport</TD></TR></TABLE>>, color=2]
    "77a7da2a6f864418dd23f49f9c5e9804" [shape=note, style=filled, colorscheme=ylgnbu3, width=3.7555555555555555, label=<<TABLE><TR><TD WIDTH="20" HEIGHT="20" FIXEDSIZE="TRUE"><IMG SRC="/mnt/e/Documents/3eme/TechnicalReport/foldertree/octicons/git-merge.png" SCALE="TRUE"/></TD><TD>.gitignore</TD></TR></TABLE>>, color=1]
    "373d5e485b88f76e79d5bab15a88759e" [shape="point", width=0, height=0]
    "8e58ce33bdaaa1db79bab7080019c6fe" [shape=note, style=filled, colorscheme=ylgnbu3, width=3.7555555555555555, label=<<TABLE><TR><TD WIDTH="20" HEIGHT="20" FIXEDSIZE="TRUE"><IMG SRC="/mnt/e/Documents/3eme/TechnicalReport/foldertree/octicons/travis.png" SCALE="TRUE"/></TD><TD>.travis.yml</TD></TR></TABLE>>, color=1]
    "b56aa426f8ad0d8a7704c909f2473b70" [shape="point", width=0, height=0]
    "98a5f187b3527ca7f00643e7907b3453" [shape=note, style=filled, colorscheme=ylgnbu3, width=3.7555555555555555, label=<<TABLE><TR><TD WIDTH="20" HEIGHT="20" FIXEDSIZE="TRUE"><IMG SRC="/mnt/e/Documents/3eme/TechnicalReport/foldertree/octicons/book.png" …
Run Code Online (Sandbox Code Playgroud)

graphviz rank nodes

6
推荐指数
1
解决办法
2723
查看次数

顶部对齐节点

问题

下图显示了组织结构图:

不需要的输出

这些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 …
Run Code Online (Sandbox Code Playgroud)

alignment graphviz nodes

5
推荐指数
1
解决办法
3147
查看次数

使graphviz节点保持对齐

我希望第二列(C和E)中的节点左对齐,而不是居中.

digraph left {
    graph [rankdir="LR", splines=ortho];
    node [shape=record];

    l1 [label="A\l|B\l"];
    l2 [label="C\l|short\l"];
    l3 [label="E\l|long long text\l"];

    l1 -> l2;
    l1 -> l3;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我见过这个问题.

但是建议的节点使用恒定宽度的方法并不适合我.我希望它们具有不同的宽度,具体取决于相应的标签宽度.

dot alignment graphviz

5
推荐指数
1
解决办法
1251
查看次数

标签 统计

graphviz ×3

alignment ×2

nodes ×2

dot ×1

rank ×1