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

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

最佳答案

Pydot是Graphviz的包装。首先检查是否可以在Graphviz中进行检查是合理的。

事实证明您可以:


要将URL与节点关联,可以使用Graphviz的URL attribute
要使链接在浏览器中可单击,可以使用this answer


现在,您可以用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,则由于您的Web浏览器的安全策略,您的链接可能无法正常工作。在这种情况下,您需要像链接的网站一样将其直接嵌入HTML中。如果图像托管在与主机页面不同的域中,那么这尤其重要。

关于python - 网站的可点击SVG图片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30756628/

10-12 19:45