如何从Python创建Gephi网络图?

时间:2016-03-11 09:54:34

标签: python graph networkx gephi

我刚刚发现了GephiStreamer。 https://pypi.python.org/pypi/GephiStreamer

使用这个包可以将指令从python发送到Gephi,在Gephi中创建节点和边缘。

# Create a node with a custom_property
node_a = graph.Node("A",custom_property=1)

# Create edge 
edge_ab = graph.Edge(node_a,node_b,custom_property="hello")
stream.add_edge(edge_ab)

同样地,我想通过Python在Gephi中做所有事情。这就是我通常做的事情。

例如:

步骤进行:

  1. 加载节点

  2. 加载边缘

  3. 计算好中心

  4. 根据中心分数更改节点的大小/颜色

  5. 更改图表布局(例如forceatlas2)

  6. 给出输出图

  7. 下面是我手动输出的内容,但我希望通过从python向Gephi发送指令来生成相同的内容。文档除了创建节点,边和图之外没有任何说明。

    我也发现了NetworKit。 https://networkit.iti.kit.edu/data/uploads/docs/NetworKit-Doc/python/html/gephi.html

    这比gephistramer略好,但这需要python 3.4或更高版本,大多数软件包如pandas,numpy或sickit都在2.7。

    还有办法将我在gephi中创建的文件发送回python。

    请建议。

    PS:我已经编辑了整个问题的详细信息,以便现在更容易理解(希望如此)。

2 个答案:

答案 0 :(得分:9)

我在寻找答案时发现了这个问题。我选择了Gephi作为我的可视化工具,然后想要通过Python从我的组织周围提取数据来构建一个得到工具支持的图形。

我找到了GephiStreamer,它看起来是一种从外部python环境(命令行或IDE)在Gephi中构建图形的简单而全面的方法

此时的其他选项是:

答案 1 :(得分:2)

没有简单的答案。 Facebook小组的人可能知道一些事情,但IMO最好的方法是从jython调用Gephi toolkit,即可用的jar,检查here以获取示例用法。问题是jython不允许安装numpy和一系列其他库,但我想你可以通过将一个脚本的输出传递给另一个脚本或使用像Celery这样的队列来解决这个问题。

所以我会编写一个脚本,让我们称它为graph_construction.py,使用networkx,构造图形,然后将其写入gexf的标准输出中。然后我会编写第二个脚本,gephi.py,它将在gephi中执行,然后让图表将图形写入pdf,然后执行以下操作:

python graph_construction.py | jython gephi.py output.pdf

并祈求它发挥作用。