Crossfilter with D3

by ramnathv

HTML

<script src="//co2-radar.mybluemix.net/js/crossfilter.v1.min.js"></script>
<script src="//co2-radar.mybluemix.net/js/d3.v3.min.js"></script>
<div id="body">

<h1>Ottawa 311 call data shown using Crossfilter and D3</h1>
<br/>
<br/>
<div id="charts">
  <div id="hour-chart" class="chart">
    <div class="title">Time of Day</div>
  </div>
  <div id="delay-chart" class="chart">
    <div class="title">Ward</div>
  </div>
  <div id="distance-chart" class="chart">
    <div class="title">Distance (mi.)</div>
  </div>
  <div id="date-chart" class="chart">
    <div class="title">Date</div>
  </div>
</div>

<aside id="totals"><span id="active">-</span> of <span id="total">-</span> calls selected.</aside>

<div id="lists">
  <div id="call-list" class="list"></div>
</div>

CSS

@import url(http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:400,700);

body {
  font-family: "Helvetica Neue";
  margin: 40px auto;
  width: 960px;
  min-height: 2000px;
}

#body {
  position: relative;
}

footer {
  padding: 2em 0 1em 0;
  font-size: 12px;
}

h1 {
  font-size: 60px;
  margin-top: .3em;
  margin-bottom: 0;
}

h1 + h2 {
  margin-top: 0;
}

h2 {
  font-weight: 400;
  font-size: 28px;
}

h1, h2 {
  font-family: "Yanone Kaffeesatz";
  text-rendering: optimizeLegibility;
}

#body > p {
  line-height: 1.5em;
  width: 640px;
  text-rendering: optimizeLegibility;
}

#charts {
  padding: 10px 0;
}

.chart {
  display: inline-block;
  height: 151px;
  margin-bottom: 20px;
}

.reset {
  padding-left: 1em;
  font-size: smaller;
  color: #ccc;
}

.background.bar {
  fill: #ccc;
}

.foreground.bar {
  fill: steelblue;
}

.axis path, .axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.axis text {
  font: 10px sans-serif;
}

.brush rect.extent {
  fill: steelblue;
  fill-opacity: .125;
}

.brush .resize path {
  fill: #eee;
  stroke: #666;
}

#hour-chart {
  width: 260px;
}

#delay-chart {
  width: 230px;
}

#distance-chart {
  width: 420px;
  visibility: hidden;
}

#date-chart {
  width: 920px;
}

#call-list {
  min-height: 1024px;
}

#call-list .date,
#calllist .day {
  margin-bottom: .4em;
}

#call-list .call {
  line-height: 1.5em;
  background: #eee;
  width: 800px;
  margin-bottom: 1px;
}

#call-list .time {
  color: #999;
}

#call-list .call div {
  display: inline-block;
  width: 100px;
}

#call-list div.destination,
#call-list div.distance,
#call-list div.delay {
  width: 180px;
  padding-right: 10px;
/*  text-align: right;*/
}

#call-list .early {
  color: green;
}

aside {
  position: absolute;
  left: 740px;
  font-size: smaller;
  width: 220px;
}

JavaScript

var calls = [{"creation_date":"2014-Jul-01 00:01:48","ward":"WARD 5","call_description":"Animals","call_type":"Bylaw Services","maintenance_yard":"Priority - 3","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:04:41","ward":"WARD 12","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:07:56","ward":"WARD 23","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 3","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:12:02","ward":"WARD 12","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:13:02","ward":"WARD 17","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:16:03","ward":"WARD 8","call_description":"Fireworks","call_type":"Bylaw Services","maintenance_yard":"Priority - 3","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:21:53","ward":"WARD 13","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:27:21","ward":"WARD 8","call_description":"Fireworks","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:29:24","ward":"WARD 9","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:31:02","ward":"WARD 12","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:31:52","ward":"WARD 12","call_description":"Noise","call_type":"Bylaw Services","maintenance_yard":"Priority - 2","priority_name":"CC PHONE"},{"creation_date":"2014-Jul-01 00:36:16","ward":"WARD...