我正在玩生成点文件,然后将它们转换为具有很多节点的 SVG 图。
我的问题是是否有事件侦听器来检测鼠标单击点/SVG 图形节点?
例如,在SVG图中的一个节点上右击,我做一些事情(可能从节点获取相关信息然后做一些事情),
那么如何生成点文件或者SVG文件来实现呢?
有几种方法可以创建交互式 SVG 图:
在任何情况下,您都必须在支持任何这些技术(浏览器)的客户端中显示 svg 图,并且除了 graphviz 创建的 svg 输出之外,您还必须对其进行编码。
关于这个的另一个想法(意识到这个问题很老,但也许它可以帮助某人遇到)。
根据您想要做什么,将事件处理与绘图分离可能是最简单的。我的意思是,您可以找出 graphviz 将节点(以及边、标签等)放置在哪里,例如,请参阅这篇关于如何在 python 中执行此操作的帖子。然后,您可以在所使用的任何 GUI 的背景中绘制图形,并使用其本机事件处理on_click
通过在节点上放置不可见的可点击对象来做出反应。
如果您想要交互式图表,那么 graphviz 可能不是最佳选择。
我建议看看D3.js。也许您可以在 json 中构建图形数据并使用 D3 加载它们?