我正在创建一个 Django 应用程序,并且想要实现社交网络的可视化。我正在寻找一个既可以绘制图形/网络数据结构,又可以使其具有交互性的库。我希望能够单击一个节点,并在页面的其他位置显示该节点的信息(名称、网络等)
到目前为止,我发现 python-graph 和 graphviz 是非常强大的可视化工具,但它们创建静态图像,因此您无法单击它们。我也发现了这个帖子
Graph visualization library in JavaScript
其中有很多建议,但其中一些建议是针对图表中的图表,而不是社交网络图表中的图表。其中一些非常古老,还有一些是交互式的,因为节点可以拖动并移动到 Canvas 上的其他位置。我不太关心用户是否能够更改图表,我只想让节点对象携带可以在某处显示的数据。
有什么建议吗?
最佳答案
我使用 PyGraphviz 做了类似的事情。您可以将图形另存为 SVG 并在您的网站中显示该 SVG。然后你可以使用类似jQuery SVG的东西将处理程序附加到节点。
我实现了一个更灵活的解决方案,并将所有节点和边序列化为 JSON 格式并将其发送到网站。然后我使用 Raphaël 绘制图表。该解决方案跨浏览器兼容并且非常灵活。
关于Django 和交互式图形/网络可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840255/