我刚刚发现了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中做所有事情。这就是我通常做的事情。
例如:
步骤进行:
加载节点
加载边缘
计算好中心
根据中心分数更改节点的大小/颜色
更改图表布局(例如forceatlas2)
给出输出图
下面是我手动输出的内容,但我希望通过从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:我已经编辑了整个问题的详细信息,以便现在更容易理解(希望如此)。
答案 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
并祈求它发挥作用。