|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="utf-8"> |
|
<title>Jersey City . Public Housing</title> |
|
<script type="text/javascript" src="http://d3js.org/d3.v3.js"></script> |
|
<style type="text/css"> |
|
|
|
body { |
|
font-family: Helvetica, Arial, sans-serif; |
|
padding: 50px; |
|
} |
|
|
|
svg text { |
|
font: Arial; |
|
font-weight:bold; |
|
font-size:24px; |
|
} |
|
|
|
.Barchart rect:hover { |
|
fill: #4D5085 !important; |
|
fill-opacity: 1; |
|
} |
|
|
|
</style> |
|
</head> |
|
<body> |
|
|
|
<script type="text/javascript"> |
|
|
|
d3.select("body").append("h1").text("Average Monthly Vacancies: Jan'14 to May'15"); |
|
d3.select("body").append("h6").text("Hover over for details").style("font-style","italic"); |
|
|
|
// To scale the length of the bars on the bar chart |
|
var factor = 700; |
|
|
|
// Adding colors based on public housing project type using https://github.com/mbostock/d3/wiki/Ordinal-Scales |
|
var color = d3.scale.ordinal() |
|
.domain(["Conventional Public Housing", |
|
"Elderly/Disabled Developments", |
|
"Homeownership Project", |
|
"Non-Federal Affordable"]) |
|
.range(["#ca0020","#f4a582","#92c5de","#0571b0"]); |
|
|
|
d3.select("body").append("h3").text("By Property"); |
|
|
|
var svg2 = d3.select("body") |
|
.append("svg") |
|
.attr("width", 600) |
|
.attr("height", 110) // height is 10 * number of rows |
|
.attr("class","Barchart"); |
|
|
|
d3.csv("PAvg.csv", function(data) { |
|
|
|
data.sort(function(a, b) { |
|
return d3.descending(a.vacant, b.vacant); |
|
}); |
|
|
|
var rects = svg2.selectAll("rect") |
|
.data(data) |
|
.enter() |
|
.append("rect"); |
|
|
|
rects.attr("x", 0) |
|
.attr("y", function(d, i) { |
|
return i * 10; |
|
}) |
|
.attr("width", function(d) { |
|
return d.vacant * factor; |
|
}) |
|
.attr("height", 8) |
|
.attr("fill",function(d){return color(d.propertyCategory)}) |
|
.append("title") |
|
.text(function(d) { |
|
return d.propertyName + "'s vacancy rate is " + d.vacant * 100 + "%"; |
|
}); |
|
}); |
|
|
|
d3.select("body").append("h3").text("By Project Type"); |
|
|
|
var svg1 = d3.select("body") |
|
.append("svg") |
|
.attr("width", 600) |
|
.attr("height", 40) // height is 10 * number of rows |
|
.attr("class","Barchart"); |
|
|
|
d3.csv("CAvg.csv", function(data) { |
|
|
|
data.sort(function(a, b) { |
|
return d3.descending(a.vacant, b.vacant); |
|
}); |
|
|
|
var rects = svg1.selectAll("rect") |
|
.data(data) |
|
.enter() |
|
.append("rect"); |
|
|
|
rects.attr("x", 0) |
|
.attr("y", function(d, i) { |
|
return i * 10; |
|
}) |
|
.attr("width", function(d) { |
|
return d.vacant * factor; |
|
}) |
|
.attr("height", 8) |
|
.attr("fill",function(d){return color(d.propertyCategory)}) |
|
.append("title") |
|
.text(function(d) { |
|
return d.propertyCategory + "'s vacancy rate is " + d.vacant * 100 + "%"; |
|
}); |
|
}); |
|
|
|
</script> |
|
|
|
</body> |
|
</html> |