Analyse json pour bar chart d3js

J'essaie de créer un graphique à barres à l'aide de l'URL de json. En ce qui concerne les impressions et le temps. Je ne pense pas que je fais référence aux données correctement à .data (données) comment j'habite le champ impressions du fichier json dans d3?

var url = "https://script.google.com/macros/s/AKfycbwy56QiQwyfkkaLFWZ33QHVieAHhtLJYNa_AzKcCBr-J7Catgv2/exec?id=1vQsWQPUET20KcgeRKgs5NOOBngqLeUuNTHI1bWi5Et8&sheet=Sheet1"; d3.json(url, function(data) { console.log(data.Sheet1[0]); var canvas = d3.select("body").append("svg") .attr("width", 500) .attr("height", 500) canvas.selectAll("rect") .data(data) .enter() .append("rect") .attr("width", function(d) { return d.Impressions }) .attr("height", 45) .attr("y", function(d, i) { return i * 50 }) .attr("fill", "blue") }); 

Vous devez passer un tableau aux données de la fonction (). Ainsi, comme les data sont un objet:

 Object {Sheet1: Array[71]} 

Vos données devraient être data.Sheet1 place. Vérifiez la démo:

 var url = "https://script.google.com/macros/s/AKfycbwy56QiQwyfkkaLFWZ33QHVieAHhtLJYNa_AzKcCBr-J7Catgv2/exec?id=1vQsWQPUET20KcgeRKgs5NOOBngqLeUuNTHI1bWi5Et8&sheet=Sheet1"; d3.json(url, function (data) { var scale = d3.scale.linear() .domain([0, d3.max(data.Sheet1, function(d){ return d.Impressions})]) .range([0, 500]); var canvas = d3.select("body").append("svg") .attr("width",500) .attr("height",500) canvas.selectAll("rect") .data(data.Sheet1) .enter() .append("rect") .attr("width",function(d){return scale(d.Impressions)}) .attr("height", 6) .attr("y",function(d,i){return i*7}) .attr("fill","blue") }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>