与此问题类似,我正在寻找一种创建GUI的方法,用户可以在其中查看图形(在图论的意义上)并与之交互.随着时间的推移,车辆将从一个节点移动到另一个节点.用户应该能够添加节点和边缘并添加车辆并设置其目的地.
我已经实现了底层的图模型和业务逻辑,我只需要一个GUI.这意味着我不需要图形算法功能,例如Djistra的算法.
如果可能,解决方案应该与平台无关.底层模型是用python编写的,因此GUI解决方案要么是基于python的(哪个更好),要么应该很容易与python(可能是IPC)接口.
性能是一个问题.它不需要快速,但它必须足够快以跟上底层模型.从概念上讲,图表中可能存在的节点,边缘和车辆的数量没有限制.
我查看了各种可视化库:
我已经考虑过使用OpenGL.
我曾想过直接画到wxPython.
我没有使用过任何图库.我不知道他们是否有能力提供所需的功能.例如,matplotlib似乎在库中有很多非图论理论图.除了通过NetworkX,我找不到一个用它实现图形的例子.再举一个例子,NetworkX可以绘制沿边缘移动的对象吗?
OpenGL解决方案几乎肯定需要更多时间来实现.我必须自己编写用于跨边移动对象的函数.我必须编写一个函数来绘制正确位置的边缘,并为所有边缘,节点和车辆等绘制标签.我需要实现菜单并从头开始处理交互.
我不确定如何在wxPython中实现它.我只知道如何将它与标准小部件结合使用.更新:我发现这个问题有一个答案,它指向wx.lib.ogl或wx.lib.floatcanvas作为在纯wxPython中实现解决方案的机制.
任何可视化库是否符合我的要求?那些最适合的人呢?是否有其他我错过的图书馆符合我的要求?像JGraph这样的东西,但对于Python而不是Java来说是合适的.
您对在OpenGL或wxPython中实现此操作有何看法,而不是其中一个库?
是否有其他方法我认为您认为不合适?
我正在创建一个Django应用程序,并希望拥有社交网络的可视化.我正在寻找一个可以绘制图形/网络数据结构的库,但也可以使它具有交互性.我希望能够点击一个节点,并在页面上的其他位置显示该节点的信息(名称,网络等)
到目前为止,我发现python-graph和graphviz是非常强大的可视化工具,但它们创建静态图像,因此您无法单击它们.我也找到了这个帖子
这有很多建议,但其中一些是图表中的图形,而不是社交网络图形中的图形.其中一些是非常老的,其中一些是交互式的,因为节点可以被拖动并移动到画布上的其他位置.我不太关心用户能够更改图形,我只是想让节点对象携带可以在某处显示的数据.
有什么建议?