javascript - d3js - lea csv/tsv sin línea de encabezado en D3
d3 request json (4)
Tengo datos CSV que se parecen a algo así:
Datos
1,1,10
1,2,50
1,3,5
etc...
Y estoy tratando de leer en los datos. Sin embargo, mis datos iniciales no contienen una fila de encabezado (como se ve arriba) por lo que está tomando la primera fila de datos para ser el encabezado (1,1,10). De todos modos hay alrededor de esto. Quiero configurar los nombres de los encabezados después de leer los datos
Javascript
d3.csv("data/testnh.csv", function(data) {
console.log(data);
}
¡Gracias!
Desde la respuesta de Bostock en 2012, d3.csv.parseRows permite una función de acceso opcional, que permite que su respuesta se exprese de manera más concisa:
d3.text("data/testnh.csv", function(text) {
var data = d3.csv.parseRows(text, function(d) {
return d.map(Number);
});
// Now do something with data
});
Pruebe d3.csvParse (texto)
Parece que d3.csv.parseRows no funciona en la versión d3 moderna.
Utilice d3.text para cargar los datos, y luego d3.csvParseRows para analizarlo. Por ejemplo:
d3.text("data/testnh.csv", function(text) {
console.log(d3.csvParseRows(text));
});
Probablemente también quiera convertir sus columnas a números, porque serán cadenas por defecto. Supongamos que son todos números, podrías decir:
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);
});
primero lea en los datos usando d3.text
, luego agregue una cadena de encabezado personalizado, luego d3.csv.parse
el resultado con 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
}