Graphviz,如何在两个节点之间居中箭头(做一条直线)?

时间:2016-04-06 00:18:08

标签: graphviz dot

目前,我有这个情节,除了直接连接X和Y的箭头外,对我来说看起来很好。 enter image description here

这是我想绘制箭头在中心的位置的情节,我有一个解决方案是在中间创建一个不可见的节点,但只是想知道是否有更好的方法,因为我觉得这很容易做到。

enter image description here

以下是我的代码:

digraph{
      graph [rankdir=LR]
      node [shape = plaintext]
      {rank=same; X1;X2;X3;X4;X5}
      X -> X1 -> Y;
      X -> X2 -> Y;
      X -> X3 -> Y;
      X -> Y;
      X -> X4[dir=back];
      X -> X5[dir=back];
      X4 -> Y;
      X5 -> Y;}

1 个答案:

答案 0 :(得分:2)

如果节点属于同一组,Graphviz会尝试将节点保持在排名方向的直线上。

digraph{
    graph [rankdir=LR splines=line]
    node [shape = plaintext]
    {rank=same; X1;X2;X3;X4;X5}
    X -> X1 -> Y;
    X -> X2 -> Y;
    X -> X3 -> Y;
    X -> Y;
    X -> X4[dir=back];
    X -> X5[dir=back];
    X4 -> Y;
    X5 -> Y;
}

enter image description here

如果您想要直线设置样条线可能就足够了

var options = Dictionary<NSObject, AnyObject>()
options[NSMigratePersistentStoresAutomaticallyOption] = true
options[NSInferMappingModelAutomaticallyOption] = true
options[NSSQLitePragmasOption] = ["journal_mode" : "TRUNCATE”]

enter image description here