First I read the csv file and fill an empty array with data
//Load dataset
var dataset = [];
var subset = [];
d3.csv("datafile.csv", function(d){
for (var i = 0; i < d.length; i++){
if (d[i].year == 2013)
{
subset.push(d[i].name);
subset.push(d[i].year);
subset.push(d[i].value1);
subset.push(d[i].value2);
subset.push(d[i].value3);
dataset.push(subset.concat());
subset = [];
}
else
{
}
}
});
Then set up the xScale
var w = 700; //width of SVG
var xmax = 0.02 //margin of xAxis
var xScale = d3.scale.linear()
.domain([d3.max(dataset, function(d){ return +d[2]; }) + xmax , 0])
.range([0, w]);
I checked in console, dataset is filled, but xScale(Number) returns NaN however, if I copy the xScale section code and execute in console xScale(Number) will work.