可视化10万顶点和100万边的Python工具?
我想把数据可视化,希望能让它变得互动一些。目前我在用NetworkX和Matplotlib这两个工具,但当我尝试“绘制”图形时,我的8GB内存就撑不住了。我不知道有什么方法或者技巧可以处理这么大一堆数据。如果有人能给我一些建议,那就太好了。我还有一块支持CUDA的显卡,不知道能不能派上用场。
现在我在考虑只绘制连接最多的节点,比如说前5%的顶点,也就是那些边最多的节点,然后在用户放大或点击时再显示连接较少的节点。
6 个回答
2
你应该去官方的wxPython邮件列表上问问。在那里有一些人可能能帮到你。我有点惊讶matplotlib居然做不到这个。可能只是需要你以某种方式重新组织一下你的代码。目前,在wxPython中绘图的主要方式有几种,分别是通过不同的DC(设备上下文)、一些FloatCanvas小部件,或者如果是画图的话,可以用wx.Plot或matplotlib。
3
也许可以试试 PyOpenGL?它可以和 wxPython 一起使用。
补充:我刚刚测试了一下,没有做任何优化,绘制 10万个顶点花了 0.2秒,而绘制 100万个边花了 4秒。
4
我没有这方面的经验,不过tulip看起来就是为这个目的而设计的。