Graphviz/Dot中基于产品的计划图

Graphviz/Dot中基于产品的计划图,graphviz,dot,Graphviz,Dot,我试图在Dot中制作一个“基于产品的规划”图,但我不太明白如何获得我正在寻找的结构 以下是我迄今为止编写的代码: graph ProductBasedPlanning { node [shape="box"]; rankdir = "TB"; splines="FALSE"; "Main product" -- {"Functionality 1" "Functionality 2"} "Functionality 1" -- {"Functionality 1a" "Fu

我试图在Dot中制作一个“基于产品的规划”图,但我不太明白如何获得我正在寻找的结构

以下是我迄今为止编写的代码:

graph ProductBasedPlanning
{
  node [shape="box"];
  rankdir = "TB";
  splines="FALSE";
  "Main product" -- {"Functionality 1" "Functionality 2"}

  "Functionality 1" -- {"Functionality 1a" "Functionality 1b"}
}

但我希望创造这样的东西:

那么,如何使直线以90度角移动呢? 我如何像示例中那样“堆叠”这些盒子

感谢您的帮助。

我使用了
rank=“same”
shape=“point”
节点

graph ProductBasedPlanning
{
    node [shape="box"];
    rankdir = "TB";
    splines=false

    "xm1" [shape="point"]
    "xm2" [shape="point"]
    "xm3" [shape="point"]

    "Main product" -- "xm2" 

    {
        rank="same"
        "xm1" -- "xm2" -- "xm3" [constraint=false]
    }

    "xm1" -- "Functionality 1"
    "xm2" -- "Functionality 2"
    "xm3" -- "Functionality 3"

    "Functionality 1" -- "x1a" -- "x1b" -- "x1c"
    "Functionality 2" -- "x2a" -- "x2b" -- "x2c"
    "Functionality 3" -- "x3a" -- "x3b" -- "x3c"

    {
        rank="same"
        "x1a" [shape="point"]
        "x1a" -- "Functionality 1a" 
    }
    {
        rank="same"
        "x1b" [shape="point"]
        "x1b" -- "Functionality 1b"
    }
    {
        rank="same"
        "x1c" [shape="point"]
        "x1c" -- "Functionality 1c"
    }

    {
        rank="same"
        "x2a" [shape="point"]
        "x2a" -- "Functionality 2a"
    }
    {
        rank="same"
        "x2b" [shape="point"]
        "x2b" -- "Functionality 2b" 
    }
    {
        rank="same"
        "x2c" [shape="point"]
        "x2c" -- "Functionality 2c"
    }

    {
        rank="same"
        "x3a" [shape="point"]
        "x3a" -- "Functionality 3a"
    }
    {
        rank="same"
        "x3b" [shape="point"]
        "x3b" -- "Functionality 3b"
    }
    {
        rank="same"
        "x3c" [shape="point"]
        "x3c" -- "Functionality 3c" 
    }
}