我怎样才能修改这个图表?

How can I modify this graph?

我写过这段代码:

digraph G {

    A254 -> A10[style=invis];
    A10 -> A9[style=invis];
    A9 -> A8[style=invis];
    A8 -> A7[style=invis];
    A7 -> A6[style=invis];
    A6 -> A5[style=invis];
    A5 -> A4[style=invis];
    A4 -> A3[style=invis];
    A3 -> A2[style=invis];
    A2 -> A1[style=invis];

    A254 -> A8 [label="t"];

    A8 -> A10 [label="t", style=dotted];
    A8 -> A9 [label="t", style=dotted];
    A8 -> A7 [label="t", style=dotted];
    A8 -> A6 [label="t", style=dotted];


    A8 -> A3 [constraint = false, label="t"];

    A3 -> A5 [label="t", style=dotted];
    A3 -> A4 [label="t", style=dotted];
    A3 -> A2 [label="t", style=dotted];
    A3 -> A1 [label="t", style=dotted];


    A254[style=filled]
    A3[style=filled]
    A8[style=filled]
    {rank=same; A254,A10,A9,A8,A7,A6,A5,A4,A3,A2,A1}
}

它产生了下图:

其实我有三个问题:

1.How 我可以让边 A8 -> A3 更整齐吗?看起来很糟糕。

2.How 我可以将边 A254 -> A8 + A8 -> A3 设为矩形吗?

3.How我可以让这个图表垂直吗?

编辑:

节点必须按照上图中显示的相同顺序排列。

这个

生成自

digraph G {

    A254 -> A10[style=invis];
    A10 -> A9[style=invis];
    A9 -> A8[style=invis];
    A8 -> A7[style=invis];
    A7 -> A6[style=invis];
    A6 -> A5[style=invis];
    A5 -> A4[style=invis];
    A4 -> A3[style=invis];
    A3 -> A2[style=invis];
    A2 -> A1[style=invis];

    A254 -> A8 [label="t"];

    A8 -> A10 [label="t", style=dotted];
    A8 -> A9 [label="t", style=dotted];
    A8 -> A7 [label="t", style=dotted];
    A8 -> A6 [label="t", style=dotted];


    A8 -> A3 [label="t"];

    A3 -> A5 [label="t", style=dotted];
    A3 -> A4 [label="t", style=dotted];
    A3 -> A2 [label="t", style=dotted];
    A3 -> A1 [label="t", style=dotted];


    A254[style=filled]
    A3[style=filled]
    A8[style=filled]
    {rank=same; A254,A8,A3}
}

最好的办法是阅读 documentation 并试验其中的想法

我已经找到解决办法了,就在这里

  1. 您可以通过适当调整节点之间的距离和节点的大小来使边缘更整齐。最重要的是通过设置相应边的minlen属性来强制A8->A3边变长。

代码如下

digraph G {

    nodesep=0.5
    node[fixedsize=true, shape="circle", width=0.5]
    A254 -> A10[style=invis];
    A10 -> A9[style=invis];
    A9 -> A8[style=invis];
    A8 -> A7[style=invis];
    A7 -> A6[style=invis];
    A6 -> A5[style=invis];
    A5 -> A4[style=invis];
    A4 -> A3[style=invis];
    A3 -> A2[style=invis];
    A2 -> A1[style=invis];

    A254 -> A8 [label="t"];

    A8 -> A10 [label="t", style=dotted];
    A8 -> A9 [label="t", style=dotted];
    A8 -> A7 [label="t", style=dotted];
    A8 -> A6 [label="t", style=dotted];


    A8 -> A3 [minlen = 3, constraint = false, label="t"];

    A3 -> A5 [label="t", style=dotted];
    A3 -> A4 [label="t", style=dotted];
    A3 -> A2 [label="t", style=dotted];
    A3 -> A1 [label="t", style=dotted];


    A254[style=filled]
    A3[style=filled]
    A8[style=filled]
    {rank=same; A254,A10,A9,A8,A7,A6,A5,A4,A3,A2,A1}
}

生成下图:

  1. 边不能是矩形。
  2. 您可以使用命令 rotate=90
  3. 使图形垂直