How to create Gephi network graphs from Python?

user5287246 picture user5287246 · Mar 11, 2016 · Viewed 26.3k times · Source

I have just found out about GephiStreamer. https://pypi.python.org/pypi/GephiStreamer

Using this package one can send instructions from python to Gephi to create nodes and edges in 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)

Similarly I want to do everything in Gephi through Python. Here is what I typically do.

ex:

steps:

  1. load nodes

  2. load edges

  3. calculate betweeness centrality

  4. change the size/color of nodes as per their centrality scores

  5. change the graph layout (such as forceatlas2)

  6. give the output graph

Below is the output I have got manually, but I want to produce the same by sending instructions from python to Gephi. Documentation doesn't tell anything beyond creating nodes, edges and graphs.

I have also found out about NetworKit. https://networkit.iti.kit.edu/data/uploads/docs/NetworKit-Doc/python/html/gephi.html

This is slightly better than gephistramer, but this requires python 3.4 or higher and most of the packages like pandas, numpy or sickit are in 2.7.

also Is there a way to send the file I have created in gephi back to python.

Please suggest.

PS: I have edited the entire question details so that it's easier to understand now (hopefully).

Answer

Frobbit picture Frobbit · Mar 28, 2017

I found this question while looking for the answer myself. I picked Gephi as my visualizer and then wanted to build a graph that was well supported by the tool by pulling data from around my org with Python.

I found GephiStreamer and it looks a simple yet comprehensive way to build graphs in Gephi from an external python environment (command line, or IDE)

The other options at this point are: