【问题标题】:How can I modify this graph?如何修改此图表?
【发布时间】:2017-04-12 22:27:06
【问题描述】:

我已经写了这段代码:

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.如何让A8 -> A3的边缘更整齐?看起来很糟糕。

2.如何使边缘 A254 -> A8 + A8 -> A3 矩形?

3.我怎样才能使这个图垂直?

编辑:

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

【问题讨论】:

    标签: graphviz


    【解决方案1】:

    这个

    生成
    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
    • 你为什么生气!!我虽然从我提出的问题的上下文中可以清楚地看到。如果你仔细阅读这些问题,你会发现隐含的意思。冷静下来,谢谢你的反对。
    【解决方案2】:

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

    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 使图形垂直

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 2011-06-24
      • 2022-01-11
      • 2021-12-05
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      相关资源
      最近更新 更多