Réaliser un clustering de données avec la timeline VIS.js
				par , 17/09/2016 à 16h02  (3594 Affichages)
			
		Présentation
VIS.js propose une timeline très bien documentée, et à mon avis, l’avantage majeur de cette dernière et des autres widgets VIS (network, graph2d,..) et le découplage du modèle de données des widgets elles mêmes, le modèle de données est un composant VIS autonome dont vous pouvez l’utiliser indépendamment.
Voir en Action
http://codepen.io/ghaliano/pen/vXKVPr
C'est quoi un clustering
D'apres wikipedia
https://fr.wikipedia.org/wiki/Partit...e_donn%C3%A9es
Objectif de l’exempleLe partitionnement de données (ou data clustering en anglais) est une des méthodes d'analyse des données. Elle vise à diviser un ensemble de données en différents « paquets » homogènes, en ce sens que les données de chaque sous-ensemble partagent des caractéristiques communes, qui correspondent le plus souvent à des critères de proximité (similarité informatique) que l'on définit en introduisant des mesures et classes de distance entre objets.
Réaliser une timeline qui gere les evenements sportifs tout en clusterisant les données pour alléger l’affichage et améliorer l’experience utilisateur.
Interaction
Des contrôles de type zoom-in zoom-out permettent d'éclater grouper les données selon une valeur de scale renvoyée par la timeline.
Problématique
J’ai été récemment amené à intégrer une timeline pour gérer des événements, le challenge le plus important était de pouvoir regrouper des données pour alléger l’affichage et améliorer l’experience utilisateur.
La version précédente de VIS (nommé CHAP) intègre en natif le clustering
https://almende.github.io/chap-links...lustering.html
Malheureusement cette fonctionnalité a été retiré de la nouvelle version de VIS du coup il n’est plus possible de clusteriser les données avec une simple config.
Solution
Codant nous même le script de clustering!
Code source
Les données de test
Pour effectuer l’exemple on va générer des événements sportifs avec des dates aléatoires.
le nombre limite des événements est configurable via une variable get.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
La classe de clusterisation
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
La page d'affichage de la timeline
Résultat
Code html : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Mot finale
- Le script n’est pas optimale mais un bon départ pour une solution plus pertinente.
- On pourra facilement ajouter un system de cache avec un localStorage car a un certain moment on pourra sauvegarder les données d'un niveau de zoom pour éviter de calculer les clusters a chaque fois que ce niveau de zoom est atteint.
- Il se peut que dans une version superieur de VIS cette fonctionnalité est bien integré en natif !












 Consulter le profil
 Consulter le profil Marquer ce blog comme lu
 Marquer ce blog comme lu
