我正在使用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/