使用图像注释DOT图

时间:2011-10-17 14:42:01

标签: image graphviz dot edge

我正在使用PyDot在python中生成graphviz / dot图。我想用从文件中读取的图像来注释我的节点和边缘,我在文档中找到了如何将图像作为节点

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 个答案:

答案 0 :(得分:6)

您可以在节点和边的标签中使用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标签中添加任意数量的行和列。它比标准文本标签更冗长,但你可以用它们做更多的事情。

答案 1 :(得分:1)

在边缘始终绘制在相同位置的情况下可以使用的一种方法是创建具有透明背景的PNG,并将图标放置在绘制边缘的相同位置,或使用labeldistance / labelangle要移动的属性。我不熟悉PyDot,但使用SQL我会创建一个案例来确定图像是否显示在节点上。

这种方法的问题在于我正在使用的图形总是以不同的方式定位并且永远不会相同,所以在理想情况下我想将图像添加到边缘标签,或者在/下面边缘标签的权利等。您是否设法找到解决方法?