Как добавить аннотацию вне узла в точке Graphviz?

Я очень новичок в Dot и пытаюсь визуализировать callgraph с Dot и Zest в Eclipse. И я хотел бы аннотировать узлы с помощью аннотации (ОК и Не удалось на рис.).

Аннотированный график, который я хочу получить

Есть ли какой-нибудь общий способ сделать это для Dot или Zest?


person Andrey Solovyov    schedule 11.04.2014    source источник


Ответы (2)


xlabel

Посмотрите на xlabel (внешняя метка).

главная.точка

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

Конвертировать:

dot -Tpng main.dot > main.png

Вывод:

введите здесь описание изображения

Однако не уверен, насколько легко вы можете контролировать точное размещение меток с помощью этого метода: по умолчанию могут происходить даже перекрытия. Видеть:

shape=record

Я просто предпочитаю подход shape=record, упомянутый https://stackoverflow.com/a/23031506/895245, или их обобщение , HTML-подобные метки, так как становится понятнее, какая метка принадлежит каждому узлу:

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

Вывод:

введите здесь описание изображения

TODO, можете ли вы не набирать 1 и 2 дважды?

Протестировано на Ubuntu 16.10, графвиз 2.38.

person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 26.12.2016

Это не поддерживается рендерингом Zest, но на уровне DOT вы можете использовать узлы на основе записей:

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

Подробности см. на http://www.graphviz.org/doc/info/shapes.html#record

person Fabian Steeg    schedule 12.04.2014