2016-11-17 98 views
1

我是新來的Graphviz,我試圖讓下面的圖形如何獲得與長標籤節點線

graph without labels

然而,當我想第一個簇裏面添加標籤,佈局被銷燬。 如果我改變了約束條件,第一個集羣中的佈局就像它應該那樣從第一個集羣到節點D的邊緣發生改變。下面以實例的圖像標籤

graph with labels

這裏是與標籤圖形代碼,作爲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>

回答

0

使用

node[ width = x ]; 

哪裏x是適合您的標籤的數字。

我用

node[ width = 3 ]; 

上線17和

node[ width = 2 ]; 

您的代碼的45行得到這樣的:

enter image description here

+0

非常感謝你。儘管我並沒有真正理解爲什麼從第一個子集羣到第二個子集的邊緣約束命令改變了第一個子集羣內節點的對齊方式。 然而,主要問題是它適用於您的解決方案! – Stephan

相關問題