score:2

Accepted answer

How about flattening your data first by using reduce:

var values = newdata.reduce(function(arr, d){
     return arr.concat(d.values);
}, []);

This will give you an array of all the objects you need to construct your points:

[{"date":"2011-03-31T18:30:00.000Z","value":58.13},
 {"date":"2011-04-30T18:30:00.000Z","value":53.98},
 {"date":"2011-03-31T18:30:00.000Z","value":28.13},
 {"date":"2011-04-30T18:30:00.000Z","value":35.13}]

Then of course just bind these values to create all your circles:

g.selectAll("dot")
 .data(values)
 ... // etc

Related Query

More Query from same tag