Question

I am very new to Dot and trying to visualize a callgraph with Dot and Zest in Eclipse. And I would like to annotate nodes with kind of annotation (OK and Failed on the pic.).

Annotated graph I want to get

Is there any common way to do this for Dot or Zest?

Was it helpful?

Solution

xlabel

Have a look at xlabel (external label).

main.dot

graph {
    node [shape=square];
    1 [xlabel="a"]
    2 [xlabel="b"]
    1 -- 2;
}

Convert:

dot -Tpng main.dot > main.png

Output:

enter image description here

Not sure however how easily you can control exact label placement with this method: even overlaps can happen by default. See:

Finally, I just prefer shape=record as mentioned by https://stackoverflow.com/a/23031506/895245 or their generalization, HTML-like labels: it makes it clear what is inside each node, and is saner.

main.dot

graph {
    rankdir=LR
    node [shape=record];
    1 [label="1|a"]
    2 [label="2|b"]
    1 -- 2;
}

Output:

enter image description here

TODO can you avoid typing 1 and 2 twice?

Tested on Ubuntu 16.10, graphviz 2.38.

OTHER TIPS

It's not supported by the Zest rendering, but on the DOT level you could use record-based nodes:

rankdir=LR;
node [shape=record];
m1[label="void m1()|OK"];
m1[label="void m2()|Failed"];

For details see http://www.graphviz.org/doc/info/shapes.html#record

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top