1

pydot用来生成 SVG 图形图像。我在这个网站上注意到:http ://safemap.sourceforge.net/demo/index-no-refresh.html他们有一个可点击的 SVG。(该网站还展示了如何使用 CSS 设置 SVG 样式:https ://css-tricks.com/using-svg/ )

我一直在搜索有关使用 生成可点击 SVG 的文档pydot,但找不到任何东西。

4

2 回答 2

3

您可以

后者通过使用表格为您提供了更多的格式化自由。

于 2015-06-10T16:53:46.033 回答
2

Pydot 是 Graphviz 的包装器。首先检查您是否可以在 Graphviz 中执行此操作是合理的。

事实证明你可以:

  1. 要将 URL 与节点关联,您可以使用 Graphviz 的URL 属性
  2. 要使链接在浏览器中可点击,您可以使用此答案

现在,你能用 pydot 做吗?我相信是这样,但还没有测试过。通过查看 pydot 的源代码,我发现它支持任何属性 -在测试中我们看到用户通过shape

self.graph_directed.add_node( pydot.Node('node', shape='box') )

pydot 本身中,我们看到它可以支持任何类型的属性,而不仅仅是shape

class Node(object, Common):
    (...)
    def __init__(self, name = '', obj_dict = None, **attrs):
        (...)
        self.obj_dict[ 'attributes' ] = dict( attrs )

所以我会尝试使用pydot.Node('node', url='http://somewhere'). 如果失败,我会.dot手动构建一个文件并通过 pydot 传递它。

警告

如果您打算在 中使用 SVG <img/>,由于您的网络浏览器的安全策略,您的链接可能无法正常工作。在这种情况下,您需要将其直接嵌入到您的 HTML 中,就像您链接的网站一样。如果图像托管在与主机页面不同的域上,这一点尤其重要。

于 2015-06-10T13:21:46.410 回答