d3.js data-driven documents - jerome cukier - introduction.pdf · d3.js data-driven documents...

44
d3.js Data-Driven Documents Scott Murray, Jerome Cukier & Jerey Heer VisWeek 2012 Tutorial

Upload: lamminh

Post on 10-Sep-2018

255 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Scott Murray, Jerome Cukier & Je!rey HeerVisWeek 2012 Tutorial

Page 2: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

How much data (bytes) did we produce in 2010?

Page 3: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

2010: 1,200 exabytes

Gantz et al, 2008, 2010

Page 4: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

2010: 1,200 exabytes

Gantz et al, 2008, 2010

10x increase over 5 years

Page 5: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

The ability to take data—to be able to understand it, to process it, to extract value from it, to visualize it, to communicate it—that’s going to be a hugely important skill in the next decades, … because now we really do have essentially free and ubiquitous data. So the complimentary scarce factor is the ability to understand that data and extract value from it.

Hal Varian, Google’s Chief EconomistThe McKinsey Quarterly, Jan 2009

Page 6: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

How do people create visualizations?

Page 7: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

How do people create visualizations?

Chart TypologyPick from a stock of templatesEasy-to-use but limited expressivenessProhibits novel designs, new data types

Page 8: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

How do people create visualizations?

Chart TypologyPick from a stock of templatesEasy-to-use but limited expressivenessProhibits novel designs, new data types

Component ArchitecturePermits more combinatorial possibilitiesNovel views require new operators, which requires software engineering.

Page 9: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, Processing

Page 10: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, Processing

Page 11: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, Processing

Page 12: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, Processing

Page 13: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, Processing

Page 14: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, ProcessingE"

cien

cy

Page 15: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, ProcessingE"

cien

cyExpressiveness

Page 16: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

Chart TypologiesExcel, Many Eyes, Google Charts

Visual Analysis LanguagesTableau VizQL, ggplot2

?Component Model Architectures

Prefuse, Flare, Improvise

Graphics APIs OpenGL, Java2D, GDI+, ProcessingE"

cien

cyExpressiveness

Page 17: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Page 18: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the web

Page 19: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the webWritten and maintained by Michael Bostock

Page 20: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the webWritten and maintained by Michael BostockResearch from Stanford Visualization Group

Page 21: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the webWritten and maintained by Michael BostockResearch from Stanford Visualization GroupThe successor to our Protovis framework

Page 22: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the webWritten and maintained by Michael BostockResearch from Stanford Visualization GroupThe successor to our Protovis framework

Page 23: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the webWritten and maintained by Michael BostockResearch from Stanford Visualization GroupThe successor to our Protovis framework

Available at http://d3js.org

Page 24: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the webWritten and maintained by Michael BostockResearch from Stanford Visualization GroupThe successor to our Protovis framework

Available at http://d3js.orgBSD-licensed; now widely adopted & deployed

Page 25: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

A JavaScript tool for visualization on the webWritten and maintained by Michael BostockResearch from Stanford Visualization GroupThe successor to our Protovis framework

Available at http://d3js.orgBSD-licensed; now widely adopted & deployed

Page 26: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Page 27: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pages

Page 28: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

Page 29: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

Page 30: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

A D3 statement is a document transformation

Page 31: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

A D3 statement is a document transformationAdd or modify elements in response to data

Page 32: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

A D3 statement is a document transformationAdd or modify elements in response to dataPlus animated transitions, layouts, scales & more

Page 33: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

A D3 statement is a document transformationAdd or modify elements in response to dataPlus animated transitions, layouts, scales & more

Page 34: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

A D3 statement is a document transformationAdd or modify elements in response to dataPlus animated transitions, layouts, scales & more

Leverage web standards: HTML, SVG, CSS

Page 35: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3.js Data-Driven Documents

Generate interactive web pagesBind data to elements in an HTML document

A D3 statement is a document transformationAdd or modify elements in response to dataPlus animated transitions, layouts, scales & more

Leverage web standards: HTML, SVG, CSSFlexibility, debugging and “future-proofing”

Page 36: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement
Page 37: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

GitHub Rank…

Page 38: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

GitHub Rank…

11th most watched project on GitHub

Page 39: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement
Page 40: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement
Page 41: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement
Page 42: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement
Page 43: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement

d3 d3

Page 44: d3.js Data-Driven Documents - Jerome Cukier - introduction.pdf · d3.js Data-Driven Documents Generate interactive web pages Bind data to elements in an HTML document A D3 statement