Comment ajouter des étiquettes de bord dans Graphviz?

169

J'essaye de dessiner un graphique en utilisant Graphviz, mais je dois ajouter des étiquettes sur les bords. Il ne semble y avoir aucun moyen d'y parvenir dans Graphviz. Y a-t-il une issue?

utilisateur855
la source

Réponses:

234

Vous utilisez la propriété label attachée au bord.

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

Ce qui précède génère un graphique qui ressemble à ceci.

texte alternatif

Andrew Walker
la source
32
Pourquoi les étiquettes touchent-elles les bords? Ne devrait-il pas y avoir un écart?
AndreKR
11
@AndreKR Une solution rapide consiste simplement à mettre un espace au début de l'étiquette: a -> b [label = "a to b"];
chembrad
6
Un autre correctif est d'utiliser rankdir="LR";, qui produit un graphique horizontal avec des étiquettes placées au-dessus du bord sans toucher.
Dave Jarvis
6
y a-t-il un moyen de faire tourner les étiquettes verticalement pour aller parallèlement à la ligne?
Justin L.
5
Pour référence future, la documentation du langage DOT est ici et la documentation des attributs est ici .
Jens le
23

@Andrew Walker a donné une excellente réponse!

Cela vaut également la peine d'être conscient de l' labeltooltip attribut . Cela permet à une chaîne supplémentaire d'être attachée à l'étiquette d'un bord. C'est plus facile pour un utilisateur que l' tooltipattribut, car il peut être fastidieux de survoler directement un bord. La syntaxe est la suivante:

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

Ce qui donne le résultat suivant: exemple d'étiquette avec info-bulle

Allan Bowe
la source
8

Vous pouvez l'utiliser. label="\E"Cela générera l'étiquette par défaut.

Par exemple:

digraph G {
 a -> b [ label="\E" ];
 b -> c [ label="\E"];
}
Nirav Patel
la source