我正在创建一个Django应用程序,希望有一个可视化的社交网络。我正在寻找一个库,可以绘制一个图形/网络数据结构,但也使其互动。我希望能够点击一个节点,并有来自该节点的信息显示(名称,网络等)在页面上的其他地方
到目前为止,我发现python-graph和graphviz是非常强大的可视化工具,但是它们创建的是静态图像,所以你不能点击它们。
Graph visualization library in JavaScript
有很多建议,但其中一些是针对图表的,而不是社交网络图的。其中一些非常古老,其中一些是交互式的,因为节点可以拖动并移动到画布上的其他地方。我不太关心用户是否能够更改图表,我只希望节点对象携带数据,可以显示在其他地方。
有什么建议吗?
4条答案
按热度按时间bf1o4zei1#
我用PyGraphviz做了类似的事情,你可以将图形保存为SVG,并在你的网站上显示SVG,然后你可以用类似jQuery SVG的东西将处理程序附加到节点上。
我实现了一个更灵活的解决方案,将所有节点和边序列化为JSON格式并发送到网站,然后使用Raphaël绘制图形,该解决方案跨浏览器兼容,非常灵活。
e1xvtsh32#
退房也是django-netjsongraph。
kx5bkwkv3#
我喜欢d3,这里有一个force-directed graph的例子(通常用于显示社交网络)。
在d3force示例中添加您所寻求的单击处理类型是相当容易的。
rxztt3cl4#
d3graph
库将在python中构建一个强制定向d3图,你可以根据边的权重“断开”网络,并将鼠标悬停在节点上以获取更多信息,双击一个节点将聚焦于该节点及其连接的边。示例: