简单的;“T形”;graphviz中的图

简单的;“T形”;graphviz中的图,graphviz,Graphviz,需要使用点/图IZ绘制图形,如下图所示: 文本可以在箭头上方,就像graphviz那样。但是如何实现T型布局呢?需要为最上面一行做一个簇吗?dot通常将树分层布局。若要强制边缘不是层分离,可以添加constraint=false选项。比如: digraph { A [shape=point] B [shape=point] C [shape=point] N [label="node"] A -> N [label="text1", constraint=false

需要使用点/图IZ绘制图形,如下图所示:


文本可以在箭头上方,就像graphviz那样。但是如何实现T型布局呢?需要为最上面一行做一个簇吗?

dot
通常将树分层布局。若要强制边缘不是层分离,可以添加
constraint=false
选项。比如:

digraph {
  A [shape=point]
  B [shape=point]
  C [shape=point]
  N [label="node"]

  A -> N [label="text1", constraint=false]
  N -> B [label="text2", constraint=false]
  N -> C [label="text3", dir=back]
}
应该有用


请注意,从较低节点到“节点”的边必须向后,因为
dot
从上到下布局树。因此,逻辑边缘方向必须是从上到下的,即使显示方向可能是相反的(这里就是这种情况)。

dot
通常将树分层布局。若要强制边缘不是层分离,可以添加
constraint=false
选项。比如:

digraph {
  A [shape=point]
  B [shape=point]
  C [shape=point]
  N [label="node"]

  A -> N [label="text1", constraint=false]
  N -> B [label="text2", constraint=false]
  N -> C [label="text3", dir=back]
}
应该有用


请注意,从较低节点到“节点”的边必须向后,因为
dot
从上到下布局树。因此,逻辑边缘方向必须是从上到下的,即使显示方向可能是相反的方向(这里就是这种情况)。

这是一种可能,对子图使用
rank=same

digraph g {
    node[shape=point, width=0.2];
    {
        rank=same;
        p1 -> n [label="text1"];
        n -> p2 [label="text2"];
    }
    n -> p3 [label="text3", dir=back];
    n[label="node", shape=rect, style=rounded];
}
您也可以使用左右布局,而不是自上而下

另一种可能是使用
constraint=false
禁用某些边的效果:

digraph g {
    node[shape=point, width=0.2];
    p1 -> n [label="text1", constraint=false];
    n -> p2 [label="text2", constraint=false];
    n -> p3 [label="text3", dir=back];
    n[label="node", shape=rect, style=rounded];
}

结果是相同的。

这是一种可能,对子图使用
rank=same

digraph g {
    node[shape=point, width=0.2];
    {
        rank=same;
        p1 -> n [label="text1"];
        n -> p2 [label="text2"];
    }
    n -> p3 [label="text3", dir=back];
    n[label="node", shape=rect, style=rounded];
}
您也可以使用左右布局,而不是自上而下

另一种可能是使用
constraint=false
禁用某些边的效果:

digraph g {
    node[shape=point, width=0.2];
    p1 -> n [label="text1", constraint=false];
    n -> p2 [label="text2", constraint=false];
    n -> p3 [label="text3", dir=back];
    n[label="node", shape=rect, style=rounded];
}
结果是一样的。

对于“约束”,我必须使用RTFM,但第一个示例很酷……)我必须为“约束”设置RTFM,但第一个示例很酷……)泰。