Принудительное направление края GraphViz - PullRequest
0 голосов
/ 30 августа 2018

Я бы хотел нарисовать такую ​​диаграмму. enter image description here

Но единственная диаграмма, которую я могу нарисовать, это: enter image description here

Я бы хотел изменить положение краев между текстовым, быстрым и визуальным для восточной стороны узлов.

Код, который я использовал:

digraph {
graph [rankdir = LR]
ranksep=3;
nodesep=0.2;

subgraph cluster0{
     style=invis;
     node [style=invis]
     t0;t1
     edge[style=invis];
     t0->t1
}
node [shape=box]
x1;x2;x3;x4;x5;x6;x7;x8;x9
node [shape=oval]
visual;textual;speed
{
    t0->x1->x2->x3->x4->x5->x6->x7->x8->x9[style=invis]
    rank=same
    t0,x1,x2,x3,x4,x5,x6,x7,x8,x9
}
{
    t1->visual->textual->speed[style=invis]
    rank=same
    t1,visual,textual,speed
}
visual->x1[style=dashed label=0.77]
visual->x2[label=0.42]
visual->x3[label=0.58]
textual->x4[style=dashed label=0.85]
textual->x5[label=0.86]
textual->x6[label=0.84]
speed->x7[style=dashed label=0.57]
speed->x8[label=0.72]
speed->x9[label=0.67]
textual->visual[dir=both constraint=false label=0.46]
speed->visual[dir=both constraint=false label=0.47]
speed->textual[dir=both constraint=false label=0.28]

}

Как я могу форсировать направление края?

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете получить предпочтительный результат, используя атрибуты headport и tailport.

textual->visual[dir=both constraint=false label=0.46 headport=se tailport=ne concentrate = true]
speed->visual[dir=both constraint=false label=0.47 headport=se tailport=ne]
speed->textual[dir=both constraint=false label=0.28 headport=se tailport=ne]

enter image description here

Что касается перемещения скорости -> визуального края в правую часть экрана, то, похоже, это не так хорошо работает. Самый быстрый обходной путь, который я могу придумать, - это создать невидимый узел на восточной стороне с меткой 0,47 и иметь два ребра, соединяющихся со скоростью -> «невидимый узел» -> текстовый

...