如何将盒子放在同一行?

时间:2013-01-06 09:40:07

标签: graphviz

我已阅读此链接 - > Forcing "main line" nodes into a straight line in Graphviz (or alternatives)

尽管使用了这个 - 我无法做到这一点。我做错了什么?

  • 为什么当我把重量放在相同的2号时,节点号3在同一水平=高度?为什么节点5不在同一级别=高度,而不是使用相同权重的4次调度?

  • 是否有任何原因与方框1和4具有相同的左边距

谢谢!

˚F

<graphviz>

digraph MMM8
{
rankdir=LR

node [shape=box,  width="0.8", height="0.5", fontsize="10"];
edge [weight=2]
      1, 2, 3, 6, 7;
edge [weight=1]
      4, 5, Nod1,  8;

 node [shape = box];
        1 [label = "111111111111"];
        2 [label = "2"];
        3 [label = "3"];
        4 [label = "4"];
        5 [label = "5"];
        6 [label = "6"];
        7 [label = "7"];
        8 [label = "7"];
        9 [label = "9"];
Nod1 [label="N1", shape=diamond,style=filled,label="",height=.1,width=.1] ;
{
1-> 2[label="C1"]
2-> 3
3 -> Nod1 
4->Nod1
Nod1->5 
5->6 
6-> 7
5->8
8-> 9
9-> 7

 {
rank = same;
1, 4
}
{
rank = same;
6,8
}

}
</graphviz>

1 个答案:

答案 0 :(得分:1)

您必须使用rank=same创建一个子组,并在子组中包含您想要内联的每个节点。

digraph MMM8
{
    rankdir=LR
    node [shape=box,  width="0.8", height="0.5", fontsize="10"];

    node [shape = box];
    {
        rank=same;
        1 [label = "111111111111"];
        2 [label = "2"];
        3 [label = "3"];
        6 [label = "6"];
        7 [label = "7"];
    }
    {
        rank=same;
        4 [label = "4"];
        5 [label = "5"];        
        8 [label = "8"];        
        Nod1 [label="N1", shape=diamond,style=filled,label="",height=.1,width=.1] ;
    }

    9 [label = "9"];

    1-> 2[label="C1"];
    2-> 3;
    3 -> Nod1; 
    4->Nod1;
    Nod1->5; 
    5->6 ;
    6-> 7;
    5->8;
    8-> 9;
    9-> 7;

}

如果您希望将所有这些节点排成一行,那么您必须将两个子组合并为一个并将节点9移入其中。