On Github gelicia / D3TCCC14
Kristina Durivage (@gelicia)
Resources at the end
What and why? What are the goals?
Invested time skews perception. Iterate, prototype
Be curious, be ready to answer questions
Short story - all D3.js does is bind objects to data
Works with anything graphical - svg is the most common, but canvas, divs, etc can be used
Programming exampleTransitions are very easy
svg.selectAll("#popBar") .attr({ fill: color1 }) .transition() .duration(1000) .ease("bounce") .attr({ fill: color2 });
GeoJSON to get the file, D3 can read it in
The only problem is the projection numbers - Github
var geoJson = d3.json("data/minneapolis.geojson", function(collection) { neigh .selectAll("path") .data(collection.features) .enter() .append("path") .attr( { "d" : path, fill : "#666666", stroke : "#000000" } ); });
Google, Enjalot Mixtapes
IRC - #d3.js on Freenode
Other contests (Github)
Tech.mn - Hackathons, etc
Open Twin Cities' List of Data Sources
Ask!
SQL-ish way to get data in Javascript (aggregations, filters)
Delimited, XML, JSON, custom parsing
var dataSet = new Miso.Dataset({ url : 'http://api.remote.com/something', interval: 10000, sync: true, jsonp : true, resetOnFetch: true }); dataSet.fetch({ success : function() { this.each( function(row){ row.attribute; }); } });
Also works for functions that need to return things
var functionAPromise = functionA(); functionAPromise.done( function(){ functionB(); } ); function functionA(){ var def = $.Deferred(); //do things def.resolve(); return def.promise(); }
NVD3 - Still uses Javascript, just simplified
Vega - Define chart in JSON
Rickshaw - Simplified time series charts
Cubism - Simplified realtime monitoring time series charts
The Functional Art by Alberto Cairo
Processing - Easy to learn
Twitter / Github @gelicia
kdurivage@gelicia.com
Presentation will be there