37
Data Driven Documents Introduction to visualising data with D3.js Michał Oniszczuk [email protected] adalab.icm.edu.pl

Introduction to data visualisations with d3.js — Data Driven Documents

Embed Size (px)

Citation preview

Page 1: Introduction to data visualisations with d3.js — Data Driven Documents

Data Driven DocumentsIntroduction to visualising data with D3.js

Michał Oniszczuk"[email protected]"adalab.icm.edu.pl

Page 2: Introduction to data visualisations with d3.js — Data Driven Documents

Me & my team

software dev

adalab.icm.edu.pl

text & data mining

Page 3: Introduction to data visualisations with d3.js — Data Driven Documents

Agenda

what is D3

core ideas

features

D3 in ICM

Page 4: Introduction to data visualisations with d3.js — Data Driven Documents

more examples: d3js.org

What is D3?

Page 5: Introduction to data visualisations with d3.js — Data Driven Documents

Architecture

UI

Data

Page 6: Introduction to data visualisations with d3.js — Data Driven Documents

DataArchitecture

UI

Page 7: Introduction to data visualisations with d3.js — Data Driven Documents

DataArchitecture

Low–level

Libraries

UI

Page 8: Introduction to data visualisations with d3.js — Data Driven Documents
Page 9: Introduction to data visualisations with d3.js — Data Driven Documents

<html> <body> "<svg width="400" height="200"> <circle cx="100" cy="100" r="10"></circle> <circle cx="200" cy="100" r="30" fill="orange"></circle> <circle cx="300" cy="100" r="20" fill="olivedrab"></circle> </svg>

examples are inspired by the Three Little Circles tutorial by Mike Bostock

Page 10: Introduction to data visualisations with d3.js — Data Driven Documents

Core D3 ideas

select

bind

Page 11: Introduction to data visualisations with d3.js — Data Driven Documents

Include .

<html> <body> <script src=„d3.js”></script> ...

Page 12: Introduction to data visualisations with d3.js — Data Driven Documents

Select

Page 13: Introduction to data visualisations with d3.js — Data Driven Documents

Select

Page 14: Introduction to data visualisations with d3.js — Data Driven Documents

Select

<svg>...</svg> "<script> var circles = d3.selectAll("circle"); circles.attr("r", 30); </script>

Page 15: Introduction to data visualisations with d3.js — Data Driven Documents

Select

<svg>...</svg> "<script> var circles = d3.selectAll("circle"); circles.attr("r", 30); </script>

CSS3 selector

Page 16: Introduction to data visualisations with d3.js — Data Driven Documents

Select

<svg>...</svg> "<script> var circles = d3.selectAll("circle"); circles.attr("r", 30); </script>

CSS3 selector

Page 17: Introduction to data visualisations with d3.js — Data Driven Documents

Select

<svg>...</svg> "<script> var circles = d3.selectAll("circle"); circles .attr("r", 30) .attr("stroke", "black") .attr("stroke-width", 1.5); </script>

CSS3 selector

method chaining {

Page 18: Introduction to data visualisations with d3.js — Data Driven Documents

Select with jQuery

<svg>...</svg> "<script> var circles = $("circle"); circles .attr("r", 30) .attr("stroke", "black") .attr("stroke-width", 1.5); </script>

Page 19: Introduction to data visualisations with d3.js — Data Driven Documents

Bind

var sizes = [10, 25, 60];

Page 20: Introduction to data visualisations with d3.js — Data Driven Documents

Bind<svg>...</svg> "

<script> var circles = d3.selectAll("circle"); var sizes = [10, 25, 60]; circles .data(sizes) .attr("r", function(size) { return size / 2; }); </script>

Page 21: Introduction to data visualisations with d3.js — Data Driven Documents

Batteries includedlayouts

transitions

geography

localisation

json & csv

scales

date & time

colour helpers

svg helpers

drag & drop

Page 22: Introduction to data visualisations with d3.js — Data Driven Documents

Libraries

Page 23: Introduction to data visualisations with d3.js — Data Driven Documents

c3js.org

Page 24: Introduction to data visualisations with d3.js — Data Driven Documents

<link href="c3.css" rel="stylesheet" type="text/css"> <script src="d3.js"></script> <script src="c3.js"></script> "<div id="chart"></div> "<script> var chart = c3.generate({ bindto: '#chart', data: { columns: [ ['data1', 30, 200, 100, 400, 150, 250], ['data2', 50, 20, 10, 40, 15, 25] ] } }); </script> c3js.org

Page 25: Introduction to data visualisations with d3.js — Data Driven Documents

<link href="c3.css" rel="stylesheet" type="text/css"> <script src="d3.js"></script> <script src="c3.js"></script> "<div id="chart"></div> "<script> var chart = c3.generate({ bindto: '#chart', data: { columns: [ ['data1', 30, 200, 100, 400, 150, 250], ['data2', 50, 20, 10, 40, 15, 25] ] } }); </script> c3js.org

Page 26: Introduction to data visualisations with d3.js — Data Driven Documents

NVD3.js

nvd3.org

Page 27: Introduction to data visualisations with d3.js — Data Driven Documents

ramnathv.github.io/rCharts

Page 28: Introduction to data visualisations with d3.js — Data Driven Documents

D3 in ICM

Page 29: Introduction to data visualisations with d3.js — Data Driven Documents

Scholar Graph Explorer

developed in adalab.icm.edu.pl

Page 30: Introduction to data visualisations with d3.js — Data Driven Documents

R graphs exporter

developed by Monika Pawluczuk [email protected] & Michał Bojanowski [email protected]

Page 31: Introduction to data visualisations with d3.js — Data Driven Documents

Charts

Page 32: Introduction to data visualisations with d3.js — Data Driven Documents

More charts

Page 33: Introduction to data visualisations with d3.js — Data Driven Documents

SummaryData

Low–level

Libraries

UI

Page 34: Introduction to data visualisations with d3.js — Data Driven Documents

Warning

low–level

steep learning curve

Page 35: Introduction to data visualisations with d3.js — Data Driven Documents

D3 is good

flexible

declarative

community

libs

Page 36: Introduction to data visualisations with d3.js — Data Driven Documents

Linksd3js.org — great examples & tutorials

libraries & tools:!

nvd3.org, c3js.org, … — easier charts

ramnathv.github.io/rCharts — create D3 charts in R

app.raw.densitydesign.org — WYSIWYG, no coding

mikemcdearmon.com/portfolio/techposts/charting-libraries-using-d3 — many more libs

Page 37: Introduction to data visualisations with d3.js — Data Driven Documents

Thanks!Please ask questions

Michał Oniszczuk"[email protected]"adalab.icm.edu.pl