graphviz嵌入式网址

Chr*_*her 21 html graphviz

我正在试图弄清楚如何生成带有超链接的图形,您可以单击该图形以访问图形中每个节点/边缘的更多详细信息.我发现graphviz使用URL节点属性具有此功能.使用我的测试文件......

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"];
}
Run Code Online (Sandbox Code Playgroud)

...我能够生成一个似乎包含一些有用信息的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>
Run Code Online (Sandbox Code Playgroud)

这是我用来生成这个的命令:

dot -Tcmapx example1_graph.dot -o test.cmapx
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何使用这个文件?graphviz的文档还提到ps2格式应该适用于URL链接,但我没有任何运气.

mar*_*pet 22

graphviz创建的地图通常可以在HTML页面中使用.

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

dot -Tcmapx example1_graph.dot -o test.cmapx
dot -Tpng example1_graph.dot -o test.png
Run Code Online (Sandbox Code Playgroud)

然后,图像与地图一起在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>
Run Code Online (Sandbox Code Playgroud)

usemap="#G"图像链接到地图的重要部分.

另请参阅此页面以获取提供图像和地图的html页面示例.


使用Url的另一种格式是SVG:

dot -Tsvg example1_graph.dot -o test.svg
Run Code Online (Sandbox Code Playgroud)

如果test.svg在浏览器中打开,则包含URL的节点是可单击的.

(顺便说一下,根据您的使用情况,您可能需要为URL添加前缀http://)

  • 谢谢,很好的解释!关于在浏览器中查看.svg文件的提示正是我所需要的. (3认同)