// data from https://docs.google.com/spreadsheets/d/1SDp7p1y6m7N5xD5_fpOkYOrJvd68V7iy6etXy2cetb8/edit#gid=0 var margins = {top:30, right:60, bottom:45, left:50}; var height = 400; var width = 600; var x = d3.scale.ordinal() .rangeRoundBands([0, width - margins.right - margins.left], .3); var xaxis = d3.svg.axis() .scale(x) .orient("bottom") //.tics(10) // .attr("stoke", "grey"); var y = d3.scale.linear() .range([height - margins.top - margins.bottom , 0]); var ydeaths = d3.scale.linear() .range([height - margins.top - margins.bottom , 0]); var othyaxis = d3.svg.axis() .scale(ydeaths) .orient("right") .ticks(12); var yaxis = d3.svg.axis() .scale(y) .orient("left") .ticks(10); var fatalCol = "#a50f15" //"#993404"; var crashCol = "#fb6a4a" var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height) .attr("stroke", "black") .attr("class","charSVG") .append("g") .attr("transform", "translate("+ margins.left + "," + margins.left + ")") // .attr("stroke-width",2); d3.csv("Accidents.csv", function(err, data){ console.log(data); var datlen = data.length; var last10 = data.slice(datlen -11, datlen) x.domain(last10.map(function(d){ // console.log(d); return d.Year; })) y.domain([0, d3.max(last10, function(d){ return d.Accidents; })]) var xaxisP = height - margins.bottom - margins.top ; svg.append("g") .attr("class", "xaxis") .attr("stroke", "grey") .attr("fill", "none") .attr("transform", "translate("+0+"," + xaxisP+ ")" ) .call(xaxis); svg.append("g") .attr("class", "yaxis") .attr("fill", "none") // .attr("transform", "translate(" + margins.left +"," + // margins.top + // margins.bottom+ ")") .attr("stroke", crashCol) .call(yaxis) .append("text") .attr("transform", "rotate(-90) translate(-250,-30)") .attr("class", "yaxLab") .text("Number of multi-engine plane crashes") .attr('fill', "black") ; svg.selectAll(".crashBars") .data(last10) .enter() .append("rect") .attr("height", function(d){ console.log(y(d.Accidents)) return height- margins.top- margins.bottom - y(d.Accidents); }) .attr("width", x.rangeBand()/2) .attr("x", function(d){ return x(d.Year); //// - (1/2) * x.rangeBand() }) .attr("y", function(d){ return y(d.Accidents) ; }) .attr("class", "crashBars") .attr("fill", crashCol); ydeaths.domain([0, 1074 //d3.max(last10, function(d){return d.Fatalities }) ]) // not understanding why this is returning not the max Fatalities on the last10 console.log( d3.max(last10, function (d){ return d.Fatalities }))// ydeaths.domain()) var movrightY = width - margins.left- margins.right; svg.append("g") .attr("class", "othY") .call(othyaxis) .attr("transform", "translate("+ movrightY +"," +"0)") .attr("fill", "none"//fatalCol ) .attr("stroke", fatalCol) .attr("opacity", 1) .append("text") .attr("transform", "rotate(-90) translate(-70,60)") .attr("class", "yweilab") .text("Deaths") .attr('fill', "black") /* svg.append("g") .attr("class", "bleep") .call(othyaxis) .attr("transform", "translate("+ movrightY +"," +"0)") .attr("fill", "none"//fatalCol ) .attr("opacity", ) */ svg.selectAll(".deathBars") .data(last10) .enter() .append("rect") .attr("fill", fatalCol) .attr("height", function(d){ return height - ydeaths(d.Fatalities) - margins.bottom - margins.top ; }) .attr("x", function(d){ return x(d.Year) + (1/2) * x.rangeBand(); }) .attr("y", function(d){ return ydeaths(d.Fatalities) }) .attr("width", x.rangeBand()/2) .attr("class", "deathBars") // .attr("transform", "translate("+ width - margins.left +"," +"0)") var movrightY = width - margins.left- margins.right - 40; svg.append("text") .text("Air plane crashes and fatalities of the last decade") .attr("x", width/7) .attr("y", -20) }) console.log("hellow world");