var margin = {top: 20, right: 20, bottom: 50, left: 70}; var svg; var squareSize = 20; var rect = null; var color = d3.scaleQuantize() .range(['#ece7f2','#a6bddb','#74a9cf','#3690c0','#0570b0','#045a8d','#023858']); // variables globales pour sauvegarder différents éléments du fichier csv var csv_data; var possible_answers = []; //valeurs possibles pour les réponses var questions_names = []; //nom des colonnes comportant des questions var md_names = []; //noms des colonnes comportant des métadonnées //lecture du fichier csv d3.csv("data.csv", function(data){ csv_data = data; //extraction des colonnes qui concernent des questions ou des métadonnées for (lab in data[0]) { //si le nom de la colonne commence par "q_" if (lab[0] == "q" && lab[1] == "_" ) { questions_names.push(lab); } //si le nom de la colonne commence par "m_" else if (lab[0] == "m" && lab[1] == "_") { md_names.push(lab); } } //extraction des valeurs de réponses possible for (var i = 0; i").addClass("dimensions"); $(dim).appendTo("#filtre"); //création d'un expace pour chaque colonne de métadonnées for (md in md_names) { var div = $("
").addClass("dimension").html('

' + md_names[md].slice(2) + ':

'); $(div).appendTo(dim); //extraction des données possibles pour cette colonne var valeurs = []; for (var i = 0; i < data.length; i++) { if ($.inArray(data[i][md_names[md]], valeurs) == -1) { valeurs.push(data[i][md_names[md]]); } } //les valeurs seront affichées dans l'ordre alpha-numérique pour faciliter la lecture valeurs.sort(); //création d'une liste pour avoir une disposition des checkbox harmonieuse var list = $(''); $(list).appendTo(div); //parcours des données et générations des checkbox for (var i = 0; i < valeurs.length; i++) { var check = $('
  • '); $(check).appendTo(list); } } //ajout du bouton "Filter" qui permet de mettre à jour la visualisation var button = $(''); $(button).appendTo("#filtre"); //pour le premier affichage de la mosaïque, tous les utilisateurs sont conservés var users = []; for (var i = 0; i