Хитрость здесь в том, чтобы использовать пустой узел (называемый здесь bnode
), группы (g1
в этом примере) и ранги (rank=same ...
), чтобы принудительно установить желаемое расположение и внешний вид. Узлы с одинаковой группой должны появляться в одной и той же вертикальной плоскости, а узлы с одинаковым рангом - в одной и той же горизонтальной плоскости.
library(DiagrammeR)
grViz("
digraph g {
subgraph cluster_0 {
style=filled;
color=lightgrey;
label= To_Accrue
node [shape = rectangle, style = filled, fillcolor = Linen]
bnode [style = invis, shape=point, width = 0, group=g1]
A [group=g1]
B
C [group=g1]
edge [arrowhead='none']
A->bnode
edge [arrowhead='normal']
B->bnode
bnode->C
{rank=same B bnode}
}
subgraph cluster_1 {
style=filled;
color=crimson;
label= Y
node [style=filled,color=blue, shape=folder]
1
2
3
1->2->3
}
}
")