Come hai scoperto, graphviz non ti permette di scegliere il posizionamento delle etichette orizzontali, quindi tutte le soluzioni sono leggermente hacky.
Tentativo # 1: Le due soluzioni postato da marapet (here)
Il labelangle e labeldistance trucco non adattarsi bene ai diverse lunghezze di testo dell'etichetta (che avrebbe dovuto ricalcolare nuovi numeri di distanza/angolo ).
La spline = false trucco non funziona così bene in cui il numero di bordi tra i nodi> il numero di nodi (si finisce con bordi sovrapposti).
Tentativo # 2: xlabels e ancoraggi per creare bordi curvi
Questo utilizza una relativamente nuova caratteristica di graphviz, xlabel (che pone sull'etichetta dopo le coordinate per i nodi/bordi sono stati decisi). La funzione ports viene utilizzata per creare bordi curvi. L'imbottitura sulle etichette si ottiene con caratteri spaziali.
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) "];
}
Credo che hai bisogno versione graphviz> 2.29 da usare xlabel.
fonte
2013-09-09 12:31:31
Nella mia versione di punto (2,40) non sembra più possibile utilizzare spazi per controllare la posizione dell'etichetta. – Nathaniel
@Nathaniel, nel caso in cui aiuti a cercare di aggiungere/aggiungere un carattere quasi invisibile, come il punto ('.') o qualcos'altro nella tabella Unicode. Questo potrebbe quindi essere registrato come un carattere che il motore di layout utilizzerà, compresi i tuoi spazi: 'xlabel =". Mytext "' or 'xlabel =" mytext. "'. – xanderiel