Аннотировать DOT-графики с изображениями - PullRequest
2 голосов
/ 17 октября 2011

Я использую PyDot для генерации графиков / точечных графиков в python. Я хотел бы аннотировать мои узлы и ребра изображениями, считанными из файлов, я нашел в документации, как поместить изображение как узел

http://www.graphviz.org/doc/info/attrs.html

http://www.graphviz.org/doc/info/shapes.html

http://www.graphviz.org/Documentation/html/shapehowto.html

но не как поместить изображение под узлом или даже меньше, чем край.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

6 голосов
/ 04 марта 2012

Вы можете использовать HTML в метках для узлов и ребер.Вы можете найти подробности здесь: http://www.graphviz.org/doc/info/shapes.html#html

По сути, вы можете что-то сказать

"a" -> "b" [label = <<TABLE><TR><TD><IMG SRC="path/to/picture"/></TD></TR></Table>>]

Вы можете добавить столько строк и столбцов, сколько хотите в метках HTML.Это немного более многословно, чем стандартные текстовые метки, но вы можете сделать с ними немного больше.

2 голосов
/ 13 января 2012

Один из методов, который может работать в тех случаях, когда края всегда будут нарисованы в одной и той же позиции, - это создать PNG с прозрачным фоном и расположить значок в том же месте, где будет нарисован ваш край, или использовать labeldistance / labelangle атрибуты для перемещения. Я не знаком с PyDot, но с помощью SQL я бы создал случай, чтобы определить, отображается ли изображение на узле.

Проблема этого метода заключается в том, что графики, с которыми я работаю, всегда располагаются по-разному и никогда не будут одинаковыми, поэтому в идеальном случае я хотел бы добавить изображение к метке края или под / к правый край метки и т. д. Вам когда-нибудь удавалось найти обходной путь?

...