Visualisation de graphes avec Gephi

Je viens de tomber sur un outil puissant de visualisation de graphes, libre, j’ai nommé Gephi.

J’ai extrait les données actuelles de TestNet concernant les membres et leurs liens, voici par exemple ce que je peux en obtenir :

Grosseur par degré sortant (les plus gros certifient le plus) :

Grosseur par degré entrant (les plus gros sont les plus certifiés) :


Vous pouvez vous aussi reproduire ces graphes, ou en faire facilement d’autres en suivant ce tutoriel.

Pour vous faciliter la tâche, voici les 2 fichiers dont vous aurez besoin :

TN_Nodes.csv (3,1 Ko)

TN_Edges.csv (13,8 Ko)

Vous pouvez aussi regarder la vidéo d’introduction sur la page d’accueil du site de Gephi, pour vous donner une idée de ce qu’il est possible de faire pour tout graphe tels ceux que manipule Duniter.

Voilà qui nous fait un 1er outil sympa :slight_smile:

14 Likes

Bravo ! vraiment top cette lib.

en jettant un coup d’oeil rapide, je penses qu’il doit y avoir une erreur pour Gab : il n’a qu’une seule certification (la mienne), pourtant il apparait en gros dans ton 2eme graph

1 Like

J’ai peut-être fait une erreur de manip oui, à bien y regarder je ne vois que les couleurs qui changent :slight_smile:

Ce serait bien d’en faire un part jour pour voir une évolution réelle. :slight_smile:

1 Like

On peut créer des graphs dynamiques dans Gephi : Import Dynamic Data · gephi/gephi Wiki · GitHub

Je m’y suis essayé. Je voulais voir si je pouvais créer une animation permettant de visualiser l’évolution de la toile, mais sans succès jusqu’à présent.

En lot de consolation, voici 4 états de la toile de gtest dans l’ordre chronologique.

A suivre…

11 Likes

Un petit update avec la toile G1.
La couleur des nœuds est en fonction du score de centralité.

La taille des nœuds est en fonction du degré.

On voit clairement kimamila qui fait le pont entre la communauté Lavaloise et les autres.

14 Likes

j’ai bien vu la définition mathématique du score de centralité, mais pour le degré, peux tu éclairer ma lanterne?
merci d’avance :smile:

C’est le nombre de liens entrants et sortants.
Si on veut, on peut faire la différence entre degré sortant et degré entrant. Mais là, c’est le total.

Actuellement je développe ceci :
https://1twitif.github.io/social-viz/ (EDIT: nouvelle url : https://mycelia.tools/ )
Et vu que j’y bosse quasi à plein temps, il va s’enrichir en fonctionnalité et s’alléger en bug.
Du coup, avec l’aide de qui veut, ou quand j’en prendrais le temps, je brancherais bien ça sous forme de nœud spécialisé pour faire des graphiques interactif de la toile de confiance, mis à jour automatiquement, avec des critère de pondération des nœud ajustable en live par celui qui consulte la visualisation, et d’ici quelques mois (ou année selon les priorité de de dev de l’outil) avec la possibilité de faire dérouler le temps pour voir l’évolution de la toile de confiance… ou des transactions… Ou des liens avec les place de marché cesium si les données sont exposées… ou autre selon l’inspiration le moment venu.

Je préfère ne rien garantir, mais j’y bosserais bien idéalement pour pouvoir vous montrer un proto au prochain RML, ou de façon plus réaliste, en commençant à développer un proto au prochain RML.

11 Likes

Bonjour @greyzlii !

As tu moyen de nous faire une mise à jour du graph ? :wink:

Pour fêter les 100 membre !

Merci à toi

2 Likes

Les RML9 approches, et avec, mon envie d’être prêt pour généré / afficher des graph basé sur les données de duniter.

J’aurais besoin pour ça de pouvoir exporter/ré-générer à chaque bloc un json des données à afficher.

Je sais qu’il y a des noeud spécialisé qui peuvent servir à ça, mais je n’en sais pas plus.

Des infos, un petit guide et/ou quelqu’un avec un peu de dispo pour m’aider à faire ça ?

A partir du moment ou j’ai les données en json, les transformer pour les afficher correctement, je devrais être autonome.
(j’ai même un mini guide pour importer des données tabulaire dans Mycelia, l’outil de visualisation que je développe : https://framagit.org/mycelia/mycelia-front-app/wikis/tableur-vers-mycelia )

PS : Pour les curieux, le projet, qui s’appellais social-viz dont je parlais dans mon précédent message s’appelle désormais Mycelia, et à déménagé ici : https://mycelia.tools/

6 Likes

Je pense que ça c’est un travail pour l’API duniter4j développée par @kimamila . Voir la doc de l’API : GitHub - duniter/duniter4j: a Java Client API to acces to a Duniter Node (e.g. Ğ1 crypto-currency)

2 Likes

Je te conseille de forker le dépôt de greyzlii, wot-reloaded. Je pense que tu as tout ce qu’il te faut dedans.

Tu verras notamment qu’il réinitialise complètement ses données neo4j dès qu’il détecte un nouveau bloc, ici. Bon c’est bourrin, mais ça fonctionne.

Ce que tu as à modifier, ce sont principalement :

  • le fichier package.json pour retirer la dépendance à neo4j-driver
  • le fichier lib/webserver.js qui offre une API propre à son nœud spécialisé
  • le fichier services/neo4jservice.js qui contient tout la logique du nœud spécialisé
2 Likes

lol , je suis bien isoler :sunny:

1 Like

Voici donc le résultat que j’ai obtenu en matière de visualisation durant le RML9 : https://viz.g1.1000i100.fr/
Et le code source associé : https://git.duniter.org/clients/gvu

Un merci tout particulier à @kimamila pour la mise à disposition de son instance elastic search que je requête pour alimenter ma visualisation en données.

7 Likes

Bonjour tout le monde ;

Je suis débutant et j’aimerai réaliser une représentation graphique des données . J’aurais besoin de savoir quelle est la meilleure structure d’une base de données pour avoir les résultats suivante :

Évolution de la production par pays ( ex : France , Belgique , Espagne) et par années (2012 , 2013 …2018).
Càd , il y a trois variables (Pays , Années et la production).

SVP aidez moi , des propositions …

Je ne suis pas sur de comprendre ta question de base de données.

Concrètement,
J’utilise deux sources de données :
duniter.db (représentation sqlite des données en blockchain (donc temporelle) et piscine faite par duniter-ts et peutêtre quelques autres données a usage interne)
et la base elastic search de cesium+ pour les coordonnées gps par exemple, mais aussi d’autres info.

Tu as ici les url que j’utilise pour alimenter Gvu en données. (je ne me sert pas des dernières lignes, d’où le fait que je n’ai pas chercher s’il y a une “bonne url” permetant d’exploiter les autres sources de données que j’ai identifiées.

Bref, je te laisse fouiller tout ça et nous dire si tu arrive à en faire ce que tu veux.
Bon courage !

PS : 2012… certes il y avait déjà du travail fait sur le sujet en 2012, mais la Ǧ1 à proprement parler n’existe que depuis le 08/03/2017

1 Like

Je vous remercie infiniment pour votre feedback.
Je pense que vous parlez d’un niveau avancé . je suis débutant c’est pour ça j’ai pas bien saisi votre réponse.

Ce que je cherche c’est de représenter graphiquement la production scientifique dans 3 pays différents et pour chaque années depuis 2005 … càd il y a trois variables … j’ai un tableur qui contient ces données mais je ne sais pas comment construire mon fichier d’importation ( Nodes et Edges)

Ok, du coup, je vous recommande de poser la question sur un forum d’entraide pour le logiciel Gephi (ou autre outil de visualisation), plutôt que sur ce forum dédié à l’écosystème de Duniter et aux monnaies libres qui en découle (et dont le topic actuel même si son nom ne l’explicite pas, est dédié à la visualisation de données concernant les monnaies libres (et la Ǧ1 plus particulièrement, à l’heure actuelle)

http://forum-gephi.org/ (en)
Learn how to use Gephi (en)
Spatialisations (FR) · gephi/gephi Wiki · GitHub
Bien débuter avec Gephi 0.9.1 | GDR Analyse de réseaux en sciences humaines et sociales

Et si vous souhaitez une représentation géographique, plutôt que de vous intéresser à Gephi, je vous recommande de vous pencher du coté de :
https://www.qgis.org/fr/site/
ou autres :
https://alternativeto.net/software/grass-gis/?license=opensource
https://alternativeto.net/software/openlayers/?license=opensource

Bon courage !

2 Likes