web-dev-qa-db-fra.com

Graphviz: Mettre une légende sur un Node en plus d'une étiquette

Dans mon graphique Graphviz (écrit en DOT), je veux que chaque nœud ait une étiquette, mais en plus de cela, je veux que certains nœuds aient une petite légende indiquant une autre valeur unique pour ce nœud. Par exemple, s'il s'agissait d'un diagramme historique, l'étiquette d'un nœud pourrait être quelque chose comme "Naissance de George Washington" et la légende pourrait se lire "Voir aussi: Révolution américaine".

C'est assez flexible, donc la légende n'a pas nécessairement besoin d'être à l'intérieur du nœud, mais j'ai besoin d'une autre façon de mettre du texte qui ne fait clairement pas partie de l'étiquette (par exemple, est d'une taille différente, peut-être d'une couleur différente) et se trouve dans un emplacement différent mais fait toujours clairement partie du nœud.

Est-ce qu'il y a un moyen de faire ça?

39
A. Duff

Pour placer des sous-titres en dehors du nœud, vous pouvez utiliser xlabel :

digraph g {
    forcelabels=true;
    a [label="Birth of George Washington", xlabel="See also: American Revolution"];
    b [label="Main label", xlabel="Additional caption"];
    a-> b;
}

forcelabels=true s'assure qu'aucun xlabel n'est omis.

xlabel for nodes example


Une deuxième option consiste à utiliser étiquettes de type HTML :

digraph g {
    a[label=<Birth of George Washington<BR />
        <FONT POINT-SIZE="10">See also: American Revolution</FONT>>];
}

html like labels example

59
marapet