J'ai des données CSV qui ressemblent à quelque chose comme:
1,1,10
1,2,50
1,3,5
etc...
Et j'essaie de lire les données. Toutefois, mes données initiales ne contiennent pas de ligne d’en-tête (comme indiqué ci-dessus). La première ligne de données est donc l’en-tête (1,1,10). Y at-il de toute façon autour de ça. Je veux définir les noms d'en-tête après avoir lu les données
d3.csv("data/testnh.csv", function(data) {
console.log(data);
}
Merci!
Utilisez d3.text pour charger les données, puis d3.csvParseRows pour les analyser. Par exemple:
d3.text("data/testnh.csv", function(text) {
console.log(d3.csvParseRows(text));
});
Vous voudrez probablement aussi convertir vos colonnes en nombres, car elles seront des chaînes par défaut. Supposons que ce sont tous nombres, vous pourriez dire:
d3.text("data/testnh.csv", function(text) {
var data = d3.csvParseRows(text).map(function(row) {
return row.map(function(value) {
return +value;
});
});
console.log(data);
});
Depuis la réponse de Bostock en 2012, d3.csv.parseRows permet une fonction d'accesseur facultative, ce qui permet à sa réponse d'être exprimée de façon plus concise:
d3.text("data/testnh.csv", function(text) {
var data = d3.csv.parseRows(text, function(d) {
return d.map(Number);
});
// Now do something with data
});
commencez par lire les données en utilisant d3.text
, puis ajoutez une chaîne d’en-tête personnalisée, puis analysez le résultat avec d3.csv.parse
d3.text("data/testnh.csv", function(r){
var result = "x, y, z\n" + r; //now you have the header
var data = d3.csv.parse(result);
//do your plotting with data
}
Essayez d3.csvParse (text)
d3.csv.parseRows semble ne pas fonctionner dans la version D3 moderne.