Аннотируйте графики DOT изображениями

Я использую PyDot для создания графиков Graphviz/dot в 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

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


person Shnippoo    schedule 17.10.2011    source источник


Ответы (2)


Вы можете использовать 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. Это немного более подробно, чем стандартные текстовые метки, но вы можете сделать с ними немного больше.

person Brad    schedule 04.03.2012

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

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

person robbith    schedule 13.01.2012