I have CSV data which looks something like:
1,1,10
1,2,50
1,3,5
etc...
And I am trying to read in the data. However, my initial
Try d3.csvParse(text)
d3.csv.parseRows seems doesn't work in modern d3 version.
first read in data using d3.text, then add custom header string, then parse the result with 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
}
Use d3.text to load the data, and then d3.csvParseRows to parse it. For example:
d3.text("data/testnh.csv", function(text) {
console.log(d3.csvParseRows(text));
});
You'll probably also want to convert your columns to numbers, because they'll be strings by default. Assume they are all numbers, you could say:
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);
});
Since Bostock's answer in 2012, d3.csv.parseRows allows for an optional accessor function, which enables his answer to be expressed more concisely:
d3.text("data/testnh.csv", function(text) {
var data = d3.csv.parseRows(text, function(d) {
return d.map(Number);
});
// Now do something with data
});