如何在dot中的主图形中布局多个子图?

问题描述 投票:10回答:1

我正在尝试使用dot创建图表。我到现在为止给出的图表如下,并给出了代码。

digraph top {
  node [shape=record ,penwidth = 2,fontsize=25];
  graph [labeljust=l]
  ratio="fill";

  subgraph cluster_1 {
    label = "Box 1";
    fontsize=40;
    subgraph cluster_2 {
      label = "Box 2";
      fontsize=38

      subgraph cluster_3 {
        label = "Box 3";
        fontsize=36;

        subgraph cluster_4 {
            label = "Box 4";
            fontsize=34;



            subgraph cluster_7 {
                    label = "Box 5";
                    fontsize=30;
                    color=blue;
                    style="dashed";
                    subgraph cluster8 {
                        color=red;
                        label = "Box 6";
                        subgraph cluster9 {
                            label = "Box 7";
                            subgraph cluster10 {
                                label = "Box 8";
                                l4 [label = "{  Label : X \l| \
                                             Label : 2014-12-05 \l| \
                                             Label : 2015-01-04 \l| \
                                             Label : true \l} \
                                            "];
                            }
                            subgraph cluster11 {
                                label = "Box 9";
                                l5 [label = "{  Label : X \l| \
                                             Label : 2015-03-06 \l| \
                                             Label : 2015-01-04 \l| \
                                             Label : true \l} \
                                            "];
                            }
                            subgraph cluster12 {
                                label = "Box 10";
                                l6 [label = "{  Label : X \l| \
                                             Label : 2015-07-03 \l| \
                                             Label : 2015-08-31 \l| \
                                             Label : true \l} \
                                            "];
                            }

                        }

                    }
                    subgraph cluster13 {
                        color=green;
                        label = "Box 11";
                        subgraph cluster {
                            label = "Box 12";
                            "Label : 2 days"
                        }
                    }
                    subgraph cluster14 {
                        label = "Box 13";
                        style=bold;
                        fontsize=20;
                        color=grey;
                        subgraph cluster15 {
                            label = "Box 14";
                            subgraph cluster16 {
                                label = "Box 15";
                                subgraph cluster17 {
                                    label = "if";
                                    subgraph cluster18 {
                                        label = "and";
                                        subgraph cluster19 {
                                            label = "Box 16";
                                            subgraph cluster20 {
                                                label = "Box 17";
                                                l7 [label = "{  Label : A \l| \
                                                                 Label : B \l| \
                                                                 Label : C \l| \
                                                                 Label : D \l} \
                                                                "];
                                            }
                                        }
                                        subgraph cluster21 {
                                            label = "Box 18";
                                            subgraph cluster {
                                                label = "Box 19";
                                                "Label : T"
                                            }
                                        }
                                    }
                                }
                                subgraph cluster29 {
                                    label = "then";
                                    "Label : O"
                                }
                            }
                        }
                        subgraph cluster22 {
                            label = "Box 19";
                            subgraph cluster30 {
                                label = "Box 20";
                                subgraph cluster31 {
                                    label = "if";
                                    subgraph cluster32 {
                                        label = "and";
                                        subgraph cluster33 {
                                            label = "Box 21";
                                            subgraph cluster34 {
                                                label = "Box 22";
                                                l8 [label = "{  Label : A \l| \
                                                                 Label : B \l| \
                                                                 Label : C \l| \
                                                                 Label : D \l} \
                                                                "];
                                            }
                                        }
                                        subgraph cluster35 {
                                            label = "Box 23";
                                            subgraph cluster {
                                                label = "Box 24";
                                                "Label : T"
                                            }
                                        }
                                    }
                                }
                                subgraph cluster36 {
                                    label = "then";
                                    "Label : C"
                                }
                            }
                        }

                    }
            }

            subgraph cluster_5 {
                label = "Box 24"
                fontsize=30;

                color=red;

                subgraph cluster_6 {
                    label = "Box 25";

                    subgraph cluster_8 {
                        label = "Box 26";

                        subgraph cluster {
                            label = "Box  27";
                            "Label : 200"
                        }

                    }

                }
                subgraph cluster {
                    label = "Box 28";
                    subgraph cluster {
                        label = "Box 29";
                        l1 [label = "{  Label : F \l| \
                                        Label : N \l |\
                                        Label : H \l |\
                                        Label : N \l} \
                                        "];

                        subgraph cluster {
                            label = "Box 30";
                            subgraph cluster {
                                label = "Box 31";
                                l2 [label = "{  C \l| \
                                                I\l} \
                                                "];
                            }
                            l3 [label = "{  label : F \l| \
                                             label : F \l| \
                                             label : A \l| \
                                             label : F \l} \
                                            "];
                        }
                    }

                }

            }

        }
      }
    }
  }
}

我面临的问题是关于子图的布局。我有兴趣在垂直的mannner中安排盒子“Box 13”,“Box 11”和“Box 6”。我有兴趣把第一排的“Box 6”和“Box 11”和第二排的“Box 13”。这种安排将在“方框5”内。我知道可用的here布局选项。我可以将三个Box(6,11,13)放入单个文件中并组合。但我不清楚如何在“Box 5”中布置三个盒子。

提前致谢。

graphviz dot subgraph
1个回答
0
投票

你需要一些脚手架,即不可见的边缘(也许是节点),尝试添加例如最后一个花括号之前的下面:

"Label : C"->"Label : 2 days"->l6[color=none]
© www.soinside.com 2019 - 2024. All rights reserved.