2013-04-05 40 views
15

我想弄清楚如何使用超链接生成图形,您可以单击以访问图形中每个节点/边缘的更多详细信息。我发现graphviz具有使用URL节点属性的能力。用我的测试文件...graphviz嵌入式网址

graph G { 
    node [label="\N"]; 
    graph [bb="0,0,218,108"]; 
    king [pos="31,90", width="0.86", height="0.50"]; 
    lord [pos="31,18", width="0.81", height="0.50"]; 
    "boot-master" [URL="google.com"]; 
    king -- lord [pos="31,72 31,61 31,47 31,36"]; 
} 

...我是能够产生似乎包含了一些有用的信息一个cmapx文件:

<map id="G" name="G"> 
<area shape="poly" href="google.com" title="boot&#45;master" alt="" coords="297,29 292,22 279,15 258,10 233,7 204,5 175,7 150,10 129,15 116,22 111,29 116,37 129,43 150,49 175,52 204,53 233,52 258,49 279,43 292,37"/> 
</map> 

这里是我用来生成此命令:

dot -Tcmapx example1_graph.dot -o test.cmapx 

但是我不确定如何使用这个文件? graphviz的文档也提到ps2格式应该可以用于URL链接,但我没有任何运气。

回答

18

graphviz创建的地图通常可用于HTML页面

想法是运行graphviz两次:一次创建地图,一次创建图像。

dot -Tcmapx example1_graph.dot -o test.cmapx 
dot -Tpng example1_graph.dot -o test.png 

然后,图像与地图一起在HTML页面中提供。语法是这样的:

<img src="/test.png" usemap="#G" alt="graphviz graph" /> 
<!-- graphviz generated map --> 
<map id="G" name="G"> 
    <area shape="poly" href="google.com" title="boot&#45;master" alt="" coords="297,29 292,22 279,15 258,10 233,7 204,5 175,7 150,10 129,15 116,22 111,29 116,37 129,43 150,49 175,52 204,53 233,52 258,49 279,43 292,37"/> 
</map> 

的重要组成部分,是usemap="#G"该图像链接到地图。

另请参阅this page了解html页面服务图像和地图的示例。


的其他格式制作使用的URL是SVG

dot -Tsvg example1_graph.dot -o test.svg 

如果你在浏览器中打开test.svg,包含URL节点点击。

(顺便说一句,这取决于你的使用,你可能要前缀http:// URL)的

+3

谢谢,很好的解释!关于在浏览器中查看.svg文件的提示正是我所需要的。 – 2013-04-08 19:35:53