web-dev-qa-db-fra.com

Organiser visuellement un réseau pondéré

Contexte

J'ai un réseau pondéré, où chaque nœud/sommet est une personne. Le poids de la connexion entre chaque nœud représente le niveau d'interaction entre les deux. Chaque nœud est représenté visuellement par la photo de la personne, et chaque paire de nœuds a une connexion (de poids variable) entre elle.

Il existe deux ensembles de données; le premier ensemble de données comprend environ 100 nœuds, le second environ 450.

Ma question est: comment les nœuds doivent-ils être organisés? J'ai cinq idées:

  1. Cercle
    • Placez tous les nœuds dans un grand cercle, les lignes se croisant à l'intérieur.
  2. Importance
    • Placez les nœuds avec les connexions les plus solides plus près du milieu.
    • Pour programmer: deuxième plus dur.
  3. Distance
    • Placez les nœuds de manière à minimiser la distance moyenne entre les connexions solides. Fondamentalement, établissez des liens plus forts les uns avec les autres.
    • Pour programmer: le plus dur.
  4. La géographie
    • Placez les nœuds en fonction de leur emplacement géographique.
    • Pour programmer: le plus simple.
  5. Aléatoire
    • Placez les nœuds au hasard dans un espace.
    • Pour programmer: deuxième plus simple.

Laquelle de ces options serait la meilleure pour visualiser les données? Quel est le pire? Serait-il préférable de permettre à l'option de basculer entre deux d'entre eux? Avez-vous d'autres suggestions?

1
Daniel

Les types de diagramme dont vous parlez font chacun des choses légèrement différentes. Je vais passer en revue chacun des types que vous mentionnez et essayer de parler un peu plus de ce à quoi ils sont bons. Ce qui est mieux pour visualiser les données dépend beaucoup de ce que vous essayez de trouver ou afficher dans les données.

1 - Diagramme d'accords

et ils sont bons pour montrer comment les choses se rapportent, mais pas si bons pour montrer les forces de chaque relation s'il y en a beaucoup à montrer. Ils peuvent également finir par masquer des grappes de choses liées si les relations sont complexes et laissent un désordre de lignes partout. S'ils sont trop occupés , ils peuvent être difficiles à suivre.

2 - De nombreux liens forts au milieu

Je ne sais pas comment j'appellerais celui-ci, mais vous obtiendriez probablement quelque chose de très similaire en travaillant de toute façon avec # 3 ...

3 - Disposition forcée

Il existe différentes implémentations de ces derniers là-bas. Ma compréhension est que, par défaut, ils font toutes les longueurs les mêmes ... mais la plupart des implémentations ont un moyen de changer cela. Par exemple, l'implémentation d3.js vous permet de définir une distance de lien pour chaque relation qui définit la longueur optimale de cette ligne . Vous pouvez déterminer la distance de liaison pour chaque relation en fonction de la force de la relation. Cela provoquerait le regroupement des choses fortement liées et la séparation des choses faiblement liées.

J'ai également vu des versions où un nombre plus élevé de relations avec un nœud entraîne le rendu de ce nœud à une plus grande taille - ce qui pourrait avoir un effet similaire.

Il existe de nombreux outils prêts à l'emploi pour les mises en page dirigées par la force qui pourraient probablement supporter le gros de l'effort de codage requis. d3 serait mon point de départ si je devais faire une recommandation de bibliothèque, mais c'est juste parce qu'il est bien connu et largement utilisé.

4 - Basé sur la géographie

Cette idée est le seul endroit où vous mentionnez la géographie dans toute la question. La géographie est-elle suffisamment importante pour fonder la visualisation? Si vous utilisez ce type de visualisation, vous êtes limité dans la façon dont vous pouvez montrer la force des relations, et les clusters seront plus difficiles à voir.

5 - ???

Je n'ai aucune idée de comment cela fonctionnerait, donc je ne peux pas vraiment en dire plus.

Ma recommandation

Si vous essayez de rendre plus facile de voir les relations entre les gens ET de voir comment les gens se regroupent, je suggère fortement une mise en page dirigée de force. Avec le nombre de nœuds que vous proposez, les performances pourraient être un problème, mais je pense que ce serait l'approche avec laquelle je commencerais.

Si vous essayez de voir des grappes géographiques, alors # 4 pourrait fonctionner - et je suggère un mélange d'épaisseur de ligne et d'opacité de ligne pour indiquer la force de chaque relation.

0
Adrian Long