Jak dodać etykiety krawędzi w Graphviz?

169

Próbuję narysować wykres za pomocą Graphviz, ale muszę dodać etykiety na krawędziach. Wydaje się, że w Graphviz nie ma na to żadnego sposobu. Czy jest wyjście?

user855
źródło

Odpowiedzi:

234

Używasz właściwości etykiety dołączonej do krawędzi.

digraph G {
 a -> b [ label="a to b" ];
 b -> c [ label="another label"];
}

Powyższe generuje wykres, który wygląda mniej więcej tak.

tekst alternatywny

Andrew Walker
źródło
32
Dlaczego etykiety dotykają krawędzi? Czy nie powinno być luki?
AndreKR
11
@AndreKR Szybkim rozwiązaniem jest wstawienie spacji na początku etykiety: a -> b [etykieta = "a do b"];
chembrad
6
Inną poprawką jest użycie rankdir="LR";, które tworzy poziomy wykres z etykietami umieszczonymi nad krawędzią bez dotykania.
Dave Jarvis
6
czy istnieje sposób na obrócenie etykiet w pionie, aby były równoległe do linii?
Justin L.
5
W przyszłości dokumentacja języka DOT jest tutaj, a dokumentacja atrybutów jest tutaj .
Jens
22

@Andrew Walker dał świetną odpowiedź!

Warto też mieć świadomość tego labeltooltip atrybutu . Pozwala to na przymocowanie dodatkowego sznurka do etykiety krawędzi. Jest to łatwiejsze dla użytkownika niż tooltipatrybut, ponieważ umieszczenie wskaźnika myszy bezpośrednio na krawędzi może być niewygodne. Składnia jest następująca:

digraph G {
 a -> b [label="  a to b" labeltooltip="this is a tooltip"];
 b -> c [label="  another label" ];
}

Co daje następujący wynik: przykład etykiety z podpowiedzią

Allan Bowe
źródło
8

Możesz użyć label="\E"To wygeneruje domyślną etykietę.

Na przykład:

digraph G {
 a -> b [ label="\E" ];
 b -> c [ label="\E"];
}
Nirav Patel
źródło