R 图解程序流程图:对齐垂直节点
我正在使用R 图解程序流程图:对齐垂直节点,r,diagrammer,R,Diagrammer,我正在使用DiagrammeRR包绘制流程图,下面是用于生成模拟示例的代码: library(DiagrammeR) grViz("digraph flowchart { # node type 1: starting and ending node node [fontname = Helvetica, shape = oval] start [label = '@@1'] node [fontname = Helvetica, shape = oval] pr
DiagrammeR
R包绘制流程图,下面是用于生成模拟示例的代码:
library(DiagrammeR)
grViz("digraph flowchart {
# node type 1: starting and ending node
node [fontname = Helvetica, shape = oval]
start [label = '@@1']
node [fontname = Helvetica, shape = oval]
pro2 [label = '@@6']
# node type 2: decision
node [fontname = Helvetica, shape = diamond]
dec1 [label = '@@2']
dec2 [label = '@@3']
node [fontname = Helvetica, shape = diamond]
dec3 [label = '@@4']
# node type 3: process
node [fontname = Helvetica, shape = rectangle]
pro1 [label = '@@5']
node [fontname = Helvetica, shape = rectangle]
pro3 [label = '@@7']
# specify which nodes are of the same 'rank' so that they'll be drawn at the same level
{rank = same; dec2 pro3}
{rank = same; pro1 dec3}
# edge definitions with the node IDs
edge[tailclip = true, headclip = true];
start -> dec1
dec1 -> dec2 [fontname = Helvetica, label = '', headport = 'n', tailport = 's']
dec1 -> pro3 [fontname = Helvetica, label = '', headport = 'n', tailport = 'e']
dec2 -> pro1 [fontname = Helvetica, label = '', tailport = 's']
dec2 -> pro3 [fontname = Helvetica, label = '']
pro3 -> dec3 [fontname = Helvetica, label = '', headport = 'n']
dec3 -> pro2 [fontname = Helvetica, label = '', headport = 'n', tailport = 's']
dec3 -> pro3 [fontname = Helvetica, label = '', headport = 'e', tailport = 'e']
pro1 -> dec1 [fontname = Helvetica, label = '', headport = 'w']
}
[1]: 'START'
[2]: 'decision 1'
[3]: 'decision 2'
[4]: 'decision 3'
[5]: 'process 1'
[6]: 'END'
[7]: 'process 3'
")
创建的流程图如下所示:我希望
- 过程1可以垂直对齐,如上面的“开始”、“决定1”和“决定2”(目前它位于左侧,看起来很尴尬;从决定2到过程1的箭头应该是直的,而不是弯曲的
- 决策3和END可以与上面的“流程3”垂直对齐;流程3到决策3的箭头应该是直的,而不是弯曲的
- “很好”,但不是必需的:有没有办法将“弯曲”箭头改为直箭头?例如,我希望让箭头的尾部从流程1的西侧开始,水平地直一点,然后垂直地直到与决策1相同的高度,最后水平地直到决策1的西侧
对于1和2,添加
{rankdir='TB';start->dec1->dec2->pro1};{rankdir='TB';pro3->dec3->pro2};
做你想做的事(你需要删除其他边)。Re 3你可能需要添加一个虚拟/不可见的节点(这些是搜索词)Re 3;给出了一个例子。