Graphviz子图顺序

4

我想使用dot和Graphiz创建一个图形网络。

到目前为止,这是我的代码:

  graph {
rankdir  = LR;
splines=line;       

subgraph cluster_1{            
    1; 2;
}
subgraph cluster_2{
    b; c;
}

subgraph cluster_3{
color = white       
    10;11;
}

b -- {1 2 10 11}[color = blue];
c -- {1 2 10 11}[color = yellow];   



1[label = "1", style = filled, fillcolor = grey91]
2[label = "2", style = filled, fillcolor = grey91]
b[label = "B", style = filled, fillcolor = blue]
c[label = "C", style = filled, fillcolor = yellow]
10[label = "10", style = filled, fillcolor = grey91]
11[label = "11", style = filled, fillcolor = grey91]

}

这是我的结果:

这是我得到的:

输入图像描述

这是我想要得到的: 输入图像描述

如何将子图按正确顺序放置?

非常感谢大家的帮助! 此致敬礼!

1个回答

5
按照所需的顺序定义边缘会有帮助。你的版本将 1 2 10 11 放在同一等级,因此它们会一个接一个地设置在下面。
graph 
{
    rankdir = LR;
    splines = line;

    node[ style = filled, fillcolor = grey91 ];
    1 2 10 11;
    b[ label = "B", fillcolor = blue   ];
    c[ label = "C", fillcolor = yellow ];


    subgraph cluster_1
    {            
        1; 2;
    }
    subgraph cluster_2
    {
        b; c;
    }
    subgraph cluster_3
    {
        color = white       
        10; 11;
    }

    edge[ color = blue ]
    { 1 2 } -- b -- { 10 11 };
    edge[ color = yellow ]
    { 1 2 } -- c -- { 10 11 };
}

收益率

enter image description here


你好 @vaettchen ,它运行得非常好!非常感谢你的时间和帮助! - 3lli0t
2
在 cluster_3 中,我会使用 color = "invis"。 - Misi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接