Graphviz: Putting a Caption on a Node In Addition to a Label

A. Duff picture A. Duff · Oct 9, 2013 · Viewed 32.9k times · Source

In my Graphviz graph (written in DOT), I want each node to have a label, but in addition to that, I want some nodes to have a small caption denoting some other unique value for that node. For example, if this were for a history diagram, a node's label might be something like "Birth of George Washington" and the caption might read "See also: American Revolution."

This is fairly flexible, so the caption doesn't necessarily need to be inside the node, but I do need some other way of putting text that clearly isn't part of the label (e.g. is a different size, possibly a different color) and is in a different location but is still clearly a part of the node.

Is there any way to do this?

Answer

marapet picture marapet · Oct 9, 2013

To place captions outside the node, you may use 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 makes sure no xlabel is omitted.

xlabel for nodes example


A second option is to use HTML-like labels:

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

html like labels example