可点击的网站SVG图像

时间:2015-06-10 12:39:22

标签: python svg graphviz clickable pydot

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

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

2 个答案:

答案 0 :(得分:1)

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

原来你可以:

  1. 要将网址与节点相关联,您可以使用Graphviz' URL attribute
  2. 要在浏览器中点击链接,您可以使用this answer
  3. 现在,你能用pydot做吗?我相信,但没有经过考验。通过查看pydot的来源,我发现它支持任何属性 - in the tests我们看到用户传递shape

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

    the pydot itself我们看到它可以支持任何类型的属性,而不仅仅是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。

    警告

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

答案 1 :(得分:1)

你可以

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