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

Graphviz, How to center the arrow (make a straight line) between two nodes?

目前,我有这个图,除了直接连接 X 和 Y 的箭头外,我觉得还不错。

这是我想在箭头大约在中心的位置绘制的图,我有一个解决方案是在中间创建一个不可见的节点,但我想知道是否有更好的方法,因为我觉得可以轻松搞定。

这是我的代码:

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;}

如果节点属于同一组,Graphviz 会尝试使节点在等级方向上保持在一条直线上。

digraph{
    graph [rankdir=LR]
    node [shape = plaintext]
    X1;X2;X3
    X[group=mid_straight];
    Y[group=mid_straight];
    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;
}

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

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;
}