2013-08-29 63 views

回答

17

正如你已經找到了,graphviz的不會讓你選擇水平放置標籤,所以所有的解決方案都略有哈克。

嘗試#1:這兩個方案發表marapet(here

  1. 的labelangle和labeldistance招不很好地適應標籤文本的 不同長度(你必須重新計算新的 距離/角度數字)。

  2. splines = false技巧不能很好地適用於節點之間的邊數>節點數(最終以 重疊的邊)。

嘗試#2:xlabels和錨建立曲邊

它使用的graphviz的一個相對較新的功能,xlabel(哪個地方的節點座標後的標籤/邊緣已經決定)。 ports功能用於創建彎曲的邊緣。標籤上的填充是用空格字符實現的。

gv

digraph { 
forcelabels=true; 

    0:sw -> 1:nw [ dir=forward, xlabel=" (1, 0) "]; 
    0 -> 1 [dir=none]; 
    1:ne -> 0:se [ dir=backward, xlabel= " (0, -1) "]; 

} 

我相信你需要graphviz的版本> 2.29使用xlabel。

+0

在我的dot(2.40)版本中,似乎不再有可能使用空格來控制標籤的位置。 – Nathaniel

+0

@Nathaniel,以防止在Unicode表中添加或附加一些幾乎不可見的字符,如點('.')或其他內容。這可能會註冊爲佈局引擎將使用的一個字符,包括空格:'xlabel =「。mytext」'或'xlabel =「mytext。」'。 – xanderiel

相關問題