web-dev-qa-db-fra.com

D3: comment afficher un grand ensemble de données

J'ai un grand ensemble de données comprend 10 ^ 5 points de données. Et maintenant, je considère la question suivante liée à un grand ensemble de données:

Existe-t-il un moyen efficace de visualiser un très grand ensemble de données? Dans mon cas, j'ai un ensemble d'utilisateurs et chaque utilisateur a 10 ^ 3 éléments. Il y a 10 ^ 5 articles au total. Je souhaite afficher tous les éléments de chaque utilisateur à la fois pour permettre une comparaison rapide entre les utilisateurs. Certains corps suggèrent d'utiliser une liste, mais je ne pense pas qu'une liste soit le seul choix lorsqu'il s'agit de cet ensemble de données volumineux.

Remarque

Je souhaite afficher tous les éléments pour chaque utilisateur à la fois.

Cela signifie que je veux afficher tous les points de données lorsque je clique sur un utilisateur, et lorsque je clique sur deux utilisations, je peux comparer la différence entre ces points de données.

23
SolessChong

Le problème n'est pas de les rendre. Vous pouvez passer au canevas ou au webgl pour la partie de rendu. Vous pouvez trouver des exemples d'utilisation de canvas et X3DOM avec la liaison de données D3. Mais cela sera lent en raison du nombre d'objets DOM, il est donc préférable de les garder séparés, comme dans ce exemple de coordonnées parallèles . Cet exemple présente également un rendu progressif pour charger et rendre tous les éléments de données.

Les garder en mémoire et les manipuler côté client n'est pas un problème non plus. D3 est souvent utilisé avec Crossfilter pour une manipulation rapide des données de "millions d'enregistrements ou plus".

10 ^ 5 points de données sont juste un peu trop de points pour le rendu interactif SVG. Mais trop de points de données dans une visualisation est souvent un indice que vous avez le mauvais niveau d'abstraction ou la mauvaise stratégie de traçage. Beaucoup de points se chevaucheront probablement ou visuellement fusionneront. Alors pourquoi ne pas agréger ces formes, par exemple en utilisant une carte thermique (échelle de couleurs pour le nombre de points qui se chevauchent), un binning (hexbin, histogramme) ou un résumé de l'ensemble de données?

Si ce que vous voulez est une vue d'ensemble et la comparaison des jeux de données, vous avez probablement besoin d'une abstraction, comme des statistiques résumant votre jeu de données, puis consultez un détail à la demande (zoom sémantique, focus + contexte, exploration).

40
Biovisualize