我正在嘗試使用點(版本2.28.0)爲了使我的源代碼的流程圖。爲此,我希望圖形由子圖組成,其中每個子圖代表代碼庫中的源文件。在每個子圖的頂部,應該將文件名稱作爲節點以易於區分的方式顯示(即深藍色背景上的粗體,白色文本)。文件名節點下面應該是代表該文件中例程流程的節點,它們按照它們被調用的順序。graphviz/dot:兩個節點之間的距離是否可以單獨設置?
我現在的問題是,我希望「文件名節點」和「例程節點」之間的距離小於各個「例程節點」之間的距離,再加上,之間不應該有箭頭。
我試圖將minlen屬性用於將「文件名節點」連接到第一個「例程節點」的邊緣,但是當我將它設置爲低於1.0的值時,兩個節點彼此相鄰,而不是堆疊。
有沒有什麼辦法可以使前兩個節點比另外兩個節點彼此接近,但是頂部/底部導向?
digraph "prog.c"
{
edge [fontname="FreeSans",fontsize="12",labelfontname="FreeSans",labelfontsize="10"];
node [fontname="FreeSans",fontsize="14",shape=record,height=0.2];
compound=true;
subgraph cluster_main {
Node1_0 [label="main.c", shape=folder, fontcolor="white", style=filled, fillcolor="#00008b"];
Node1_1 [label="routine1()"];
Node1_2 [label="routine2()"];
edge [color="transparent", minlen="0.5"]; // stacking not ok
// edge [color="transparent", minlen="1.0"]; // stacking ok
Node1_0 -> Node1_1 ;
edge [color="black", minlen="1.0"];
Node1_1 -> Node1_2 ;
}
}
編輯:我應該註釋掉這導致令人失望的結果,而不是一條通往希望的結果(我曾計劃連接兩個PNG文件的澄清,但我不允許這樣做行所以作爲一個新手);所以這裏是我實際上想要修改的代碼,前兩個節點與最後兩個節點的距離不同(較小)。
digraph "prog.c"
{
edge [fontname="FreeSans",fontsize="12",labelfontname="FreeSans",labelfontsize="10"];
node [fontname="FreeSans",fontsize="14",shape=record,height=0.2];
compound=true;
subgraph cluster_main {
Node1_0 [label="main.c", shape=folder, fontcolor="white", style=filled, fillcolor="#00008b"];
Node1_1 [label="routine1()"];
Node1_2 [label="routine2()"];
//edge [color="transparent", minlen="0.5"]; // stacking not ok
edge [color="transparent", minlen="1.0"]; // stacking ok
Node1_0 -> Node1_1 ;
edge [color="black", minlen="1.0"];
Node1_1 -> Node1_2 ;
}
}
它是如何回答這個問題? – Math
對不起,不清楚。通過將「ranksep」增加到更大的值,這些例程將分開得更遠。 – OldDogNewTricks
我錯過了問題答案的重要部分,即使它確實有幫助。 – pwagner