d3.js data-driven documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/d3_tutorial.pdf · introduction –...

28
D3.js Data Driven Documents Data-Driven Documents —— IV Course Spring’14 1

Upload: others

Post on 19-Jul-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

D3.js Data Driven DocumentsData-Driven Documents

—— IV Course Spring’14

1

Page 2: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Outline• IntroductionIntroduction

– Introducing D3– Technology FundamentalsTechnology Fundamentals– Data Formats

• Getting start with D3Getting start with D3• Data• Scales• Scales• Interaction and Transitions

2

Page 3: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction

3

Page 4: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

4

Page 5: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – what is D3• d3.js

– JavaScript library for creating data visualizations.

• Data-Driven Documents– Documents means anything that can be rendered by a web

browser, such as HTML and SVG– D3 does the driving it connects the data to the documentsD3 does the driving, it connects the data to the documents

• you may use, modify, and adapt the code for y y , y, pnoncommercial or commercial use at no cost.

5

Page 6: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – what it does• Loading data into the browser’s memory

• Binding data to elements within the document, creating new elements as neededg

• Setting the visual properties of those elements

• Transitioning elements between states in response to user inputuser input

6

Page 7: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – HTML

• Hypertext Markup Languageused to structure content for web browsers– used to structure content for web browsers

– stored in plain text files with the .html– Adding Structure with Elementsg

7

Page 8: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – SVG• Scalable Vector Graphics

8

Page 9: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – JavaScript• Variables

var number = 5;

• Arrays var numbers = [ 5, 10, 15, 20, 25 ];[ ]

• Objectsvar fruit = {{

kind: "grape",color: "red",quantity: 12

};

9

Page 10: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – JavaScript• Objects and Arrays

10

Page 11: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – JSON• JavaScript Object Notation

– a specific syntax for organizing data as JavaScript objectsp y g g p j

– can of course be stored in variables

11

Page 12: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – Developer Tools• Development Environment

– Text editor– Aptana Studio– WebStorm

• A browser– Chrome– Firefox(recommended)

• A server– Tomcat– Apache– IIS

12

Page 13: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Getting start with D3

13

Page 14: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

14

Page 15: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

template.html

15

Page 16: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Data

16

Page 17: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Binding Data

17

Page 18: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Binding Data• Loading CSV data

• Loading JSON dataLoading JSON data

18

Page 19: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Binding Data• .data()

– The data– A selection of DOM elements

• . enter()()– create new, data-bound elements

19

Page 20: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Binding Data

20

Page 21: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Scale

21

Page 22: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Scale

• d3.scale.linear() – Constructs a new linear scale with the default domain [0,1] and

the default range [0 1] the default range [0,1] • .domain()

– sets the scale's input domain to the specified array of sets the scale s input domain to the specified array of numbers. The array must contain two or more numbers.

• .range()– sets the scale's output range to the specified array of values.

The array must contain two or more values

22

Page 23: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Scale

23

Page 24: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Interaction & Transition

24

Page 25: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

25

Page 26: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Interaction & Transition

• Binding Event Listeners

• Transitions– add this link in the chain below where your selection is made– Above where any attribute changes are applied

Duration• Duration– specified after the transition()– specified in milliseconds E g duration(1000)specified in milliseconds. E.g duration(1000)

26

Page 27: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Introduction – what it doesn’t do• D3 doesn’t support older browsers

– Before IE 8

• D3’s core functionality doesn’t handle bitmapy p– It is great with anything vector (SVG)

• D3 doesn’t hide your original data– D3 code is executed on the client side– The data you want visualized must be sent to the client

27

Page 28: D3.js Data-Driven Documentslcs.ios.ac.cn/~shil/wiki/images/2/2c/D3_tutorial.pdf · Introduction – what is D3 • d3.js – JavaScript library for creating data visualizations. •

Questions?Questions?

28