From 475275e0bb1d7e494ff3579595bf0e8dcda8474a Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Sun, 29 Mar 2015 00:45:49 -0400 Subject: Add visualizing congress with D3 post --- assets/scripts/d3/religion_v1.js | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 assets/scripts/d3/religion_v1.js (limited to 'assets/scripts/d3/religion_v1.js') diff --git a/assets/scripts/d3/religion_v1.js b/assets/scripts/d3/religion_v1.js new file mode 100644 index 0000000..4b8f733 --- /dev/null +++ b/assets/scripts/d3/religion_v1.js @@ -0,0 +1,60 @@ +(function() { + + var transform = function(data) { + // Set up an object and an array to use + var religion_data = { "Known": 0, "Unknown": 0 }; + var religion_array = []; + + // For each legislator, increment the key associated with their religion + for (var i = 0; i < data.length; i++) { + var d = data[i]; + + if (!d.bio.religion || d.bio.religion === "Unknown") { + religion_data["Unknown"]++; + } else { + religion_data["Known"]++; + } + } + + // Now convert our object to an array for use in the pie chart + for (var e in religion_data) { + religion_array.push({ + name: e, + count: religion_data[e] + }); + } + + return religion_array; + }; + + var width = 960; + var height = 400; + var radius = Math.min(width, height) / 2; + + var pie = d3.layout.pie() + .value(function(d) { return d.count; }) + .sort(null); + + var container = d3.select("div#d3religion_v1") + .append("svg") + .attr("width", width) + .attr("height", height); + + var donut = container.append("g") + .attr("transform", "translate(" + (width / 2) + "," + (height / 2) + ")"); + + var arc = d3.svg.arc() + .outerRadius(radius) + .innerRadius(radius / 2); + + d3.json("/assets/data/legislators-current.json", function(data) { + + // Add the arc segments to our visualization + donut.selectAll("path") + .data(pie(transform(data.legislators))) + .enter() + .append("path") + .attr("d", arc) + .attr("fill", function(d) { return d.data.name === "Unknown" ? "#ddd" : "steelblue"; }); + }); +})(); -- cgit v1.2.3