График R-диаграммы
Я используюdiagrammer
для диаграммы, которая должна выглядеть так, как показано ниже, но безуспешно.
Я попробовал следующий код
library(DiagrammeR)
grViz("
digraph boxes_and_circles {
graph [layout = circo,
overlap =T,
outputorder = edgesfirst,
bgcolor='white',
splines=line]#controls l type setup
edge[labelfontname='Arial',fontSize=13,color='red',fontcolor='navy']
node [shape = box,style='filled',
fillcolor='indianred4',width=2.5,
fontSize=20,fontcolor='snow',
fontname='Arial']
a;b;c;d;e
node [shape = square,
fixedsize = true,
width = 0.9] // sets as circles
# several 'edge' statements
a->b;a->c;a->d;a->e;c->b;d->b;e->b}")
Это дает мне следующую диаграмму
Есть мысли о том, как настроить код, чтобы получить желаемый результат? Любая помощь будет высоко оценен. Спасибо.
1 ответ
Хм
- механизм компоновки circo здесь, похоже, не применим, заменен на точку
- добавлены узлы aPrime и bPrime для желаемого результата
- использовал Rank=, чтобы начать ранжирование
- использовали невидимые края для установки ранжирования нижних узлов
- добавлена спецификация порта для некоторых ребер
- использован атрибут группы для вертикального выравнивания
Дополнительную информацию об этих атрибутах см.: https://www.graphviz.org/pdf/dotguide.pdf и: https://www.graphviz.org/doc/info/attrs.html.
digraph boxes_and_circles {
graph [layout = dot // not circo
overlap =false, // not "T"
outputorder = edgesfirst,
bgcolor="white",
splines=line //polyline
nodesep="2.0"
]#controls l type setup
edge[labelfontname="Arial",fontSize=13,color="red",fontcolor="navy"
]
node [shape = box,style="filled",
fillcolor="indianred4",width=2.5,
fontSize=20,fontcolor="snow",
fontname="Arial"
]
{rank=min a [group=g1] ;b [group=g2]}
{rank=same
aPrime [label="A on C D E" group=g1]
bPrime [label="C D E on B" group=g2]
}
{
edge[style=invis]
c-> d-> e
}
// what is the new node definition for ??
node [shape = square,
fixedsize = true,
width = 0.9] // sets as circles
# several "edge" statements
a->b;
a -> aPrime
aPrime->c:w;
aPrime->d:w;
aPrime->e:w;
c:e->bPrime;
d:e->bPrime;
e:e->bPrime
bPrime->b
}