DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret...

27
DATA-DRIVEN DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

Transcript of DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret...

Page 1: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

DATA-DRIVENDOCUMENTS

VISUALIZING LIBRARY DATA WITH D3.JSBret Davidson | NCSU Libraries

Page 2: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

D3.js

Page 3: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

AGENDAExampleWhy D3?Data JoinAPI HighlightsD3 @ NCSUResources

Page 5: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

WHY D3?Web StandardsCapabilityCommunity

Page 6: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries
Page 7: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

WHY NOT D3?Learning CurveLower LevelSimpler Needs

Page 8: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

EXAMPLE var dataset = [20, 5, 10, 0, 50];

d3.select('body') .selectAll('p') // selection .data(dataset) // data binding .enter() // create enter selection .append('p') // dom manipulation .style('font-size', '50px') // static property .text(function (d, i) { // dynamic property return i + ': my value is ' + d; });

Page 9: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

OUTPUT

Page 10: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

DATA JOIN

Page 12: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

ENTER + UPDATE + EXIT // Enter rects.enter() .append('rect');

// Update rects.attr('x', 20) .attr('y', function (d, i) {return 65 * i;}) .attr('height', '60' ) .attr('width', function(d, i) {return x(d);});

// Exit rects.exit() .remove();

Page 13: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

LINEAR SCALE

Page 14: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

LINEAR SCALE var fontSize = d3.scale.linear() .domain([0, d3.max(dataset)]) .range([25, 50]);

Page 15: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

ARRAY METHODS d3.max(array[, accessor]); d3.min(array[, accessor]);

d3.extent(array[, accessor]);

d3.sum(array[, accessor]); d3.mean(array[, accessor]); d3.median(array[, accessor]);

d3.range([start, ]stop[, step]);

d3.nest() .key(function(d) { return d.school }) .entries(array);

Page 16: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

OTHER SCALESpower()log()quantize()quantile()threshold()ordinal()time()

Page 17: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

SVG GENERATORSAreaLineChordDiagonalSymbol

Page 18: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

LAYOUTSForceHiearchyHistogramPackTreemap

Page 19: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

AND MORE!AxesTransitionsColor ScalesFormattingGeography

Page 20: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

D3 @ NCSU

lib.ncsu.edu/dli/projects/spaceassesstool

Page 21: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries
Page 22: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries
Page 23: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries
Page 24: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries
Page 25: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

ACKNOWLEDGMENTSMike Bostock

Scott Cheng

Scott Murray

Page 26: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

SUMA TEAMJason Casden

Joyce Chapman

Bret Davidson

Rob Rucker

Rusty Earl

Eric McEachern

lib.ncsu.edu/dli/projects/spaceassesstool

Page 27: DATA-DRIVEN DOCUMENTS - code for libraries DOCUMENTS VISUALIZING LIBRARY DATA WITH D3.JS Bret Davidson | NCSU Libraries

THANK [email protected]

go.ncsu.edu/c4l13-d3