【问题标题】:Vertically align nodes in Graphviz using FDP使用 FDP 在 Graphviz 中垂直对齐节点
【发布时间】:2015-12-09 11:24:55
【问题描述】:

谁能告诉我如何垂直对齐节点?这是我的代码

       subgraph clusterDatabase { 
       label="Databases" style=filled; 
       bgcolor="#D0C0A0";
       node [fillcolor="yellow" style="filled" ]"DB 3.3.3.3";
       node [fillcolor="yellow" style="filled" ]"DB 1.1.1.1";
      node [ fillcolor="yellow" style="filled" ]"DB 2.2.2.2";

}

我的输出附在图片中

【问题讨论】:

  • 您的节点之间没有边 - 您是否使用 fdp 进行布局?
  • 我只想显示集群框之间的连接,而不是集群内部。因此需要使用 fdp。
  • 所以你想用fdp来布局集群,但是每个集群应该是一个简单的垂直节点堆叠?
  • 是的,你是对的......

标签: graphviz


【解决方案1】:

使用 fdp,通过添加位置坐标,以下代码可能会接近您想要的:

graph dfd {
  node[shape=box]
  subgraph clusterDatabase { 
    label="Databases" style=filled; 
    bgcolor="#D0C0A0";
    node [pos="0.2,0.2!" fillcolor="yellow" style="filled" ]"DB 3.3.3.3";
    node [pos="0.0,0.1!" fillcolor="yellow" style="filled" ]"DB 1.1.1.1";
    node [pos="0.2,0.0!" fillcolor="yellow" style="filled" ]"DB 2.2.2.2";
  }
}

我进行了实验,发现垂直对齐是通过指定位置来实现的,这样任何一个维度上的框都不会重叠。一旦有这样的重叠,那么重叠的框可能会被移动以避免重叠,并且将无法实现对齐。

在您的情况下,“DB 1.1.1.1”框侵入了“DB 2.2.2.2”的空间,“DB 2.2.2.2”向右移动以避免重叠。

我还没有找到让布局接受重叠但保持对齐的方法。 (如果专家知道如何做到这一点,请发表评论。)

【讨论】:

    猜你喜欢
    • 2018-05-16
    • 1970-01-01
    • 2014-08-02
    • 2015-01-21
    • 2013-05-13
    • 2021-01-27
    • 2021-08-22
    • 2011-01-14
    • 2021-02-26
    相关资源
    最近更新 更多