L'importation de données à partir de plusieurs fichiers csv en D3
Je suis tout nouveau à D3 et juste de commencer à travailler sur un projet. Ma question est la suivante.
Je veux importer des données à partir de 2 fichiers csv en D3 à utiliser pour le graphique de comparaison. Les problèmes, je suis confronté sont les suivants:
1.Comment puis-je importer des données à partir de plusieurs fichiers csv.
2.Puis-je utiliser un tableau pour chaque csv ou ne D3 utilisez uniquement un tableau de données?
3.Est-il un moyen de choisir un certain de la colonne des fichiers csv à importer?
Voici un exemple, je veux importer le "oldVer" de chacun des fichiers dans des tableaux distincts, puis utiliser les 2 tableaux de travailler avec. Est que possible dans D3 et comment?
csv 1
temps,oldVer,newVer,oldT,newT
1,180930,190394,24,59
2,198039,159094,26,45
3,152581,194032,22,61
csv 2
temps,oldVer,newVer,oldT,newT
1,184950,180435,27,26
2,120590,129409,13,13
3,165222,182133,60,54
Encore une fois désolé pour la question stupide, mais j'ai trouvé peu de commentaires sur cette question. Toute aide sera appréciée.
OriginalL'auteur John M. | 2014-02-18
Vous devez vous connecter pour publier un commentaire.
Vous suffit d'appeler
d3.csv
plusieurs fois:Quant à votre troisième question, non, D3 va analyser tout. Il n'y a rien qui vous oblige à utiliser toutes les données, donc si vous êtes intéressé par une seule colonne, il suffit d'utiliser les données de ce.
À droite sur la place, je vais essayer maintenant. J'ai lu à propos des appels asynchrones avant, mais ne peut pas en dire beaucoup, je viens de l'essayer. Je vous remercie pour la rapidité de la responce les gars.
SI je suis ici, dans le lien que j'ai référencé, je crois que vous voulez 7.2.2 modèle de flux de Contrôle n ° 2, où "...nous voulons juste prendre un petit ensemble d'opérations, de lancer toutes en même temps et puis faire quelque chose quand ils sont tous complets."
Non, c'est exactement ce que l'imbrication prend soin de. Je suis de l'envoi de la demande pour la deuxième CSV uniquement lorsque la première demande est complète, de sorte que l'intérieur de la deuxième fonction de gestionnaire d' sont garantis d'être disponibles.
Je vois maintenant...l'appel intérieur ne fonctionne que lorsque les données de retour de l'appel externe. Désolé pour la confusion.
OriginalL'auteur Lars Kotthoff
Vous pouvez utiliser un d3 la file d'attente pour charger les fichiers en même temps. Un exemple;
Excellente façon de le faire!
OriginalL'auteur Stuart Hallows
En d3 la version 5, vous pouvez utiliser
Promise.all
pour charger plusieurs fichiers csv. Exemple:Plus d'informations sur le chargement de csv en d3 v5
Plus d'infos sur
Promesse.tous les()
Ce doit être accepté comme réponse.
Puis-je l'utiliser d'une certaine manière avec un nombre dynamique de fichiers?
OriginalL'auteur Abang F.
Stuart Hallows' réponse est correcte - d3.file d'attente est utilisé en d3 pour charger plusieurs fichiers.
Je ne recommande pas de nidification le chargement de plusieurs fichiers comme dans Lars Kotthoff réponse - ce n'est pas le plus pratique.
MODIFIER: je tiens à préciser la raison que l'imbrication n'est pas le plus pratique. Il réduit la lisibilité/compréhension de la capacité de votre code, et il y a mieux aussi, plus sémantique des façons de gérer plusieurs asynchrone des blocs de code (qui est, les rappels et les promesses).
Préférable d'utiliser une fonction de rappel et transmettre les résultats à cela, après tout chargement de fichiers les tâches sont terminées. Rappels d'éliminer la nécessité pour l'imbrication de plusieurs demandes de ressources à l'intérieur les uns des autres dans une pyramide de nidification.
Pas une question stupide, par la manière dont!
OriginalL'auteur travelsize
Pour répondre à votre partie 3,
Non, vous ne pouvez pas charger dans le cadre d'un
CSV
. Vous pouvez, cependant, de la charge dans l'ensemble de laCSV
fichier et utiliser sélectivement une colonne. Vous pouvez vous référer àdata.newVer
d'utiliser lenewVer
de données de la colonne.OriginalL'auteur travelsize