web-dev-qa-db-fra.com

Comment créer des graphiques de réseau Gephi à partir de Python?

Je viens de découvrir GephiStreamer. https://pypi.python.org/pypi/GephiStreamer

En utilisant ce paquet, on peut envoyer des instructions de python à Gephi pour créer des nœuds et des arêtes dans 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)

De même, je veux tout faire dans Gephi via Python. Voici ce que je fais généralement.

ex:

pas:

  1. charger des nœuds

  2. bords de charge

  3. calculer entre centralité

  4. changer la taille/couleur des nœuds selon leurs scores de centralité

  5. changer la disposition du graphique (comme forceatlas2)

  6. donner le graphique de sortie

Voici la sortie que j'ai obtenue manuellement, mais je veux produire la même chose en envoyant des instructions de python à Gephi. La documentation ne dit rien au-delà de la création de nœuds, d'arêtes et de graphiques.

J'ai également découvert NetworKit. https://networkit.iti.kit.edu/data/uploads/docs/NetworKit-Doc/python/html/gephi.html

C'est un peu mieux que gephistramer, mais cela nécessite python 3.4 ou supérieur et la plupart des paquets comme pandas, numpy ou maladeit sont en 2.7.

existe-t-il également un moyen de renvoyer le fichier que j'ai créé dans gephi vers python.

Veuillez suggérer.

PS: J'ai modifié tous les détails de la question afin qu'il soit plus facile à comprendre maintenant (espérons-le).

14
user5287246

J'ai trouvé cette question en cherchant moi-même la réponse. J'ai choisi Gephi comme visualiseur, puis j'ai voulu créer un graphique qui était bien pris en charge par l'outil en extrayant des données de toute mon organisation avec Python.

J'ai trouvé GephiStreamer et cela ressemble à un moyen simple mais complet de créer des graphiques dans Gephi à partir d'un environnement externe python (ligne de commande ou IDE)

Les autres options à ce stade sont les suivantes:

10
Frobbit

Il n'y a pas de réponse simple à cela. Les membres du groupe Facebook savent peut-être quelque chose, mais l'OMI la meilleure façon de le faire serait d'appeler le Gephi toolkit, c'est-à-dire le pot disponible, depuis jython, consultez ici pour un exemple d'utilisation. Le fait est que jython ne permet pas d'installer numpy et une série d'autres bibliothèques mais je suppose que vous pouvez contourner ce problème en canalisant la sortie d'un script vers l'autre ou en utilisant une file d'attente comme Celery.

Je voudrais donc écrire un script appelons-le graph_construction.py qui utilise networkx, construit le graphe puis l'écrit dans la sortie standard dans gexf. Ensuite, j'écrirais un deuxième script, gephi.py qui exécuterait des choses dans gephi et disons écrire le graphique dans un pdf puis faire quelque chose comme:

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

et priez pour que cela fonctionne.

2
Yannis P.