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...