Graphviz / Dot 中基于产品的规划图
Product Based Planning diagram in Graphviz / Dot
我正在尝试在 Dot 中制作一个 "Product Based Planning" 图,但我不太清楚如何获得结构,我正在寻找。
这是我到目前为止编写的代码:
graph ProductBasedPlanning
{
node [shape="box"];
rankdir = "TB";
splines="FALSE";
"Main product" -- {"Functionality 1" "Functionality 2"}
"Functionality 1" -- {"Functionality 1a" "Functionality 1b"}
}
但我希望创建这样的东西:
那么,如何让线条以 90 度角移动?
以及如何 "stack" 示例中的方框?
感谢您的帮助。
我使用了 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"
}
}
我正在尝试在 Dot 中制作一个 "Product Based Planning" 图,但我不太清楚如何获得结构,我正在寻找。
这是我到目前为止编写的代码:
graph ProductBasedPlanning
{
node [shape="box"];
rankdir = "TB";
splines="FALSE";
"Main product" -- {"Functionality 1" "Functionality 2"}
"Functionality 1" -- {"Functionality 1a" "Functionality 1b"}
}
但我希望创建这样的东西:
那么,如何让线条以 90 度角移动? 以及如何 "stack" 示例中的方框?
感谢您的帮助。
我使用了 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"
}
}