Comment animer la croissance d'un réseau social?

12

Je cherche une bibliothèque / un outil pour visualiser comment le réseau social change lorsque de nouveaux nœuds / bords lui sont ajoutés.

L'une des solutions existantes est SoNIA: Social Network Image Animator . Cela vous permet de faire des films comme celui-ci .

La documentation de SoNIA indique qu'elle est cassée pour le moment, et en plus de cela, je préférerais une solution basée sur JavaScript à la place. Donc, ma question est: connaissez-vous des outils ou êtes-vous capable de me diriger vers certaines bibliothèques qui rendraient cette tâche aussi simple que possible?

Juste après avoir posté cette question, je vais creuser dans sigma.js , veuillez donc considérer cette bibliothèque comme couverte.

En général, mes données d'entrée seraient quelque chose comme ceci:

time_elapsed; node1; node2
1; A; B
2; A; C
3; B; C

Nous avons donc ici trois points dans le temps (1, 2, 3), trois nœuds (A, B, C) et trois arêtes, qui représentent une fermeture triadique entre les trois nœuds considérés.

De plus, chaque nœud aura deux attributs (âge et sexe), donc je voudrais pouvoir changer la forme / couleur des nœuds.

De plus, après avoir ajouté un nouveau nœud, il serait parfait d'avoir un ForceAtlas2 ou un algorithme similaire pour ajuster la disposition du graphique.

Wojciech Walczak
la source

Réponses:

12

Les animations fantaisies sont cool

J'ai été très impressionné en voyant cette animation du référentiel git du discours . Ils ont utilisé Gourse qui est spécifiquement pour git. Mais cela peut donner des idées sur la façon de représenter la dynamique de la croissance.

Vous pouvez créer des animations avec matplotlib

Cette réponse de stackoverflow semble pointer vers une solution python / networkx / matplotlib.

Mais D3.js fournit une interaction

Si vous recherchez une solution Web, d3.js est excellent. Voyez ceci , ceci et cela par exemple. Voir aussi cette question de stackoverflow , la réponse acceptée pointe à nouveau vers D3.js.

Conclusion

Je serais attiré par les options python / networkx pour l'analyse de réseau (éventuellement pour ajouter des attributs à votre fichier de données brutes par exemple). Ensuite, pour la visualisation et la diffusion, D3.js est parfait. Vous pourriez être surpris de la facilité d'écriture de d3.js une fois que vous y êtes entré. Je crois que cela fonctionne même dans un cahier ipython!

Graeme Stuart
la source
Merci, j'aime cette solution Python / networkx / matplotlib car c'est mon environnement de travail par défaut, et il est facile de faire un gif à partir de ce code. Pourtant, quelque chose de plus joli sur le Web battrait cette solution :)
Wojciech Walczak
6

Ma première supposition est de visualiser le réseau social dans Tableau .

Et en particulier: la création de graphiques de réseau dans Tableau .

Ce dont vous avez besoin est d'ajouter une dimension de temps à la section "Pages" pour pouvoir voir la dynamique de changement de réseau.

Ceci est l'écran du lien ci-dessus. entrez la description de l'image ici

IharS
la source
1
Salut, merci pour cette astuce, mais je préférerais quelque chose qui soit facilement accessible au public sous une forme dynamique. De plus, je préfère les solutions gratuites, tandis que Tableau - corrigez-moi si je me trompe - n'est disponible qu'en version d'essai.
Wojciech Walczak
Il a également une édition «publique», ce qui signifie que vous devez stocker / partager vos résultats sur le Web et que vous ne pouvez pas les enregistrer localement.
IharS
2
@WojciechWalczak Peut-être que gephi peut être utilisé à la place de Tableau.
Amir Ali Akbari
6

Il est avéré que cette tâche était assez facile à réaliser en utilisant vis.js . C'était le meilleur exemple de code que j'ai trouvé.

L'exemple de ce que j'ai construit là-dessus est ici (faites défiler vers le bas de ce post). Ce graphique représente la croissance d'un sous-réseau d'amis Facebook. Les points verts sont des femelles, les bleus sont des mâles. Plus la couleur est foncée, plus l'utilisateur est âgé. En cliquant sur "Dodaj węzły", vous pouvez ajouter plus de nœuds et d'arêtes au graphique.

Quoi qu'il en soit, je suis toujours intéressé par d'autres moyens d'accomplir cette tâche, donc je n'accepterai aucune réponse pour l'instant.

Merci pour vos contributions!

Wojciech Walczak
la source
vos liens sont rompus
user1870400