Visualiser un graphique avec un million de sommets

17

Quel est le meilleur outil à utiliser pour visualiser (dessiner les sommets et les bords) un graphique avec 1000000 sommets? Il y a environ 50000 arêtes dans le graphique. Et je peux calculer l'emplacement des sommets et arêtes individuels.

Je pense à écrire un programme pour générer un svg. D'autres suggestions?

Cici
la source
vous pouvez essayer Graphviz ... vous ne savez pas s'il évolue jusqu'à des millions de sommets ....
Debasis
Espérons qu'une réponse à cette question puisse toucher la façon dont les graphiques comme ceux-ci ont été créés: medium.com/i-data/…
shadowtalker
Bonjour @Cici, les questions sur les outils recommandés sont généralement déconseillées sur ce site et sur d'autres sites SE, car elles invitent simplement beaucoup d'opinion.
Sean Owen

Réponses:

19

Je suggère également un Gephilogiciel ( https://gephi.github.io ), qui semble assez puissant. Quelques informations supplémentaires sur l'utilisation Gephiavec de grands réseaux peuvent être trouvées ici et, plus généralement, ici . Cytoscape( http://www.cytoscape.org ) est une alternative à Gephi, étant une autre plate-forme populaire pour l'analyse et la visualisation de réseaux complexes.

Si vous souhaitez travailler avec des réseaux par programmation (y compris la visualisation) en R, Python ou C / C ++, vous pouvez vérifier la igraphcollection de bibliothèques. En parlant de R, vous pouvez trouver intéressant les articles de blog suivants: sur l' utilisation de R avec Cytoscape ( http://www.vesnam.com/Rblog/viznets1 ) et sur l' utilisation de R avec Gephi ( http://www.vesnam.com/ Rblog / viznets2 ).

Pour des listes complètes de logiciels d'analyse et de visualisation de réseau , y compris des comparaisons et des critiques, vous pouvez consulter les pages suivantes: 1) http://wiki.cytoscape.org/Network_analysis_links ; 2) http://www.kdnuggets.com/software/social-network-analysis.html ; 3) http://www.activatenetworks.net/social-network-analysis-sna-software-review .

Aleksandr Blekh
la source
8

https://gephi.github.io/ dit qu'il peut gérer un million d'arêtes. Si votre graphique a 1000000 sommets et seulement 50000 arêtes, la plupart de vos sommets n'auront de toute façon aucune arête.

En fait, la spécification Gephi est le double de votre exemple: "Réseaux jusqu'à 50 000 nœuds et 1 000 000 d'arêtes"

Spacedman
la source
8

Je pense que cela Gephipourrait faire face à des problèmes de manque de mémoire, vous aurez besoin d'au moins 8 Go de RAM. Bien que le nombre de bords ne soit pas extrêmement énorme.

Peut-être, un outil plus approprié dans ce cas serait GraphViz. Il s'agit d'un outil en ligne de commande pour les visualisations réseau, et serait probablement plus tolérant à la taille du graphique. De plus, si je me souviens bien, GraphVizil est possible d'utiliser des coordonnées précalculées pour faciliter les calculs.

J'ai essayé de trouver des exemples concrets d'utilisation GraphVizavec d'énormes graphiques, mais j'ai échoué. Bien que j'aie trouvé une discussion similaire sur la science informatique .

sobach
la source
4

Compte rendu: j'ai fini par coder graphml et utiliser yEd pour la visualisation (juste parce que je connais cette combinaison. Je parie que gephi ou graphviz fonctionnerait bien et pourrait même être mieux). Depuis que j'ai calculé l'emplacement de tous les nœuds, la mémoire n'était pas un gros problème. Le codage de graphml est un peu plus facile à comparer au codage svg, car je n'ai pas besoin de spécifier explicitement le placement des bords.

Cici
la source
2

PajekXXL est conçu pour gérer d'énormes réseaux. Mais Pajek est aussi une sorte de programme bizarre avec une interface peu intuitive.

shadowtalker
la source
2

Je recommanderais d'utiliser Graphexp. Gephi dépend fortement de la RAM de votre ordinateur qui est évidemment limitée. Graphexp, en revanche, n'affiche qu'un nombre limité de nœuds, à travers lesquels vous pouvez naviguer vers d'autres nœuds. J'ai visualisé un graphique avec 700 millions de sommets utilisant Graphexp comme interface utilisateur et Janusgraph avec HBase comme stockage back-end. https://github.com/bricaud/graphexp

Sandeep Kumar
la source
Vraiment? pour moi ça commence à s'étouffer en essayant de montrer plus de 100 sommets
BrDaHa
La vitesse dépend principalement de la base de données principale et de la capacité de calcul. Graphexp est uniquement UI.
Sandeep Kumar
Je m'en rends compte, mais par "étranglement", je veux dire que le taux de rafraîchissement tomberait à 1-2 fps lors de l'animation des nœuds à l'écran. Il pourrait être utile de noter qu'il s'agit d'une version récente de Safari
BrDaHa
0

Jetez un oeil à Graphistry , ils peuvent gérer les nœuds et les bords de 1Mil.

Scott
la source
Oui, Graphistry est le seul outil visuel interactif pour les grands graphiques car il s'exécute de bout en bout sur les GPU pour vous.
Leo Meyerovich