用于可视化100k顶点和1M边缘的Python工具?

时间:2011-04-13 11:02:37

标签: python graph wxpython visualization

我正在寻找数据的可视化,希望能让它具有互动性。现在我正在使用NetworkX和Matplotlib,当我试图“绘制”图形时,它最大化了我的8gb。我不知道有哪些选项和技术可用于处理如此大的数据集* * 。如果有人能指出我正确的方向,那就太好了。我也有一个支持CUDA的GFX卡,如果它可以使用。

现在我正在考虑只绘制连接最多的节点,比如说边缘最多5%的顶点,然后在用户缩放或点击时填充连接较少的节点。

6 个答案:

答案 0 :(得分:4)

我对此没有任何经验,但似乎是tulip

答案 1 :(得分:2)

你应该在官方的wxPython邮件列表上询问。那里有人可以帮助你。我很惊讶matplotlib虽然无法做到这一点。它可能只需要您以某种方式重构代码。现在,在wxPython中绘制的主要方法是通过各种DC,一个FloatCanvas小部件或用于绘图,wx.Plot或matplotlib。

答案 2 :(得分:2)

也许PyOpenGL?它可以与wxPython一起使用。

编辑:只是尝试了没有任何优化的性能,绘制100k顶点需要0.2s,绘制1M边缘需要4s。

答案 3 :(得分:1)

您考虑过graphviz了吗?虽然它从一开始就设计用于处理非常大的图形(尽管1M边缘可能超出它的能力),但它不是交互式的。

有一个python模块(pydot)可以简单地与graphviz进行交互。再说一次,不能肯定它会扩展到你的水平。但是,应该很容易找到:两者的安装都很简单。

第h

答案 4 :(得分:1)

您是否考虑过使用ParaViewVisIt?这是两个交互式绘图程序,旨在处理和绘制(非常!)大型数据集。它们都有一个Python脚本接口,因此您可以在Python解释器中自动化/控制可视化。

答案 5 :(得分:0)

您是否尝试过Gephi

我相信它的扩展性非常好。