Я новичок в GraphViz, и я пытаюсь получить следующий графическогоКак получить узлы с длинными этикетками в соответствии
Однако, когда я хочу, чтобы добавить метки, расположение внутри первого кластера разрушается. Если я изменил ограничение, макет в первом кластере будет таким же, как если бы ребро от первого кластера до узла D изменилось. Здесь изображение с примером этикетки
Вот код для графа с меткой, как Newbee я мог бы включены некоторые избыточный код:
digraph Name {
graph [fontsize=10 fontname="Verdana" compound=true];
{ rank=same;
0 [style=invis];
01 [style = invis];
02 [style=invis];
0-> 01 -> 02 [style=invis];
}
subgraph cluster1 {
compound=true ;
fontsize = 20;
label = "ooooooooooo oooooooo";
A [label="aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa"];
{rank="same";
B [label="bbbbbbbbbb"];
C [label="cccccccccccc"];
0;
01;}
{rank="same";
edge [style=invis];
B1 [label="b1b1b1b1 b1\nb1b1b1b1b1b1b1b1b1"];
C1 [style=invis];}
{rank="same";
edge [style=invis];
B2 [label="b2b2b2b2b2 b2b2b2\nb2b2b2b2b2"];
C2 [style=invis];}
A->B ;
0->B [style=invis];
B->B1 [group=g1];
B1->B2 [group=g1];
A->C ;
01->C [group=g2 style=invis];
C->C1 [group=g2 style=invis];
C1->C2 [group=g2 style=invis];
style = "dashed";
}
subgraph cluster2 {
style=invis
{rank=same;
D [label="ddddddd dddd"];
D1 [label="d1d1d1"];
D2 [label="d2d2d2d2d2d"];
D3 [label="d3d3d3 d3d3d3d"];
02;}
02 -> D [style=invis];
D -> D1;
D1 -> D2;
D2 -> D3;
}
// edges between clusters
C -> D [ ltail=cluster1 constraint=false];
}
</code></pre>
большое спасибо. Хотя я не понимаю, почему команда ограничения для края от первого субкластера ко второму, изменяет порядок выравнивания узлов внутри первого подкластера. Однако основная проблема заключается в том, что он работает с вашим решением! – Stephan