9. Visualisasi Data,
menurut Ben Fry(Processing.js)
Acquire: Membaca data dari drive, file, etc...etc...
Parse: Pengelompokkan data (membuat terstruktur).
Filter: Menyaring data berdasarkan kriteria.
Mine: Melakukan perhitungan statistik/algoritmik.
Represent: Memilih model visual (bar, pie, etc...,etc...)
Refine: Dibuat lebih ^menarik ̄
Interact: Tambahan ^interaksi ̄
D3.JS
(animasi)
^POWER ̄
12. Huh, SVG?
^SVG: Scalable Vector
Graphics.Format gambar
vektor berbasis XML untuk
grafis dua dimensi, yang
memiliki dukungan interaksi dan
animasi ̄
(Google-translated wiki)
13. HTML + SVG
Ingat bahwa SVG berbasis XML, jadi untuk
menambahkan elemen SVG, dapat digunakan
<TAG>
Menggambar elipse
<svg width="50" height="50">
<ellipse cx="25" cy="25" rx="15" ry="10" fill="red" />
</svg>
14. Set up
Penggunaan D3.JS:
<html>
<meta charset="utf-8">
<head>
<style>
</style>
</head>
<body>
<script src=/slideshow/d3js-datadriven-documents/32027654/"d3.js"></script>
<script>
</script>
<div
</body>
</html>
16. Chaining Method
Syntax yang 'berantai'
d3.select("body").append("p").text("New paragraph!");
Pemanggilan method dilakukan bersambungan dengan
pemanggilan 'method' lainnya.
START
d3.select("body").append("p").text("New paragraph!");
Bagaimana jika 'rantai' terlalu panjang?
d3.select("body").append("svg").attr("width",200).attr("weight",20
0).selectAll("g").data(dataset).enter().append("ellipse").attr("cx
",function(d){return
d;}).attr("cy",40).attr("rx",10).attr("ry",10).attr("fill","red");
17. Chaining Method,con't
Membuat 'chain-less-look', lebih mudah untuk dibaca.
var svg = d3.select("body")
.append("svg")
.attr("width",200)
.attr("weight",200);
var dot = svg.selectAll("g")
.data(dataset)
.enter()
.append("ellipse")
.attr("cx",function(d){
return d;
})
.attr("cy",40)
.attr("rx",10)
.attr("ry",10)
.attr("fill","red");
sama
d3.select("body").append("svg").attr("width",200).attr("weight",20
0).selectAll("g").data(dataset).enter().append("ellipse").attr("cx
",function(d){return
d;}).attr("cy",40).attr("rx",10).attr("ry",10).attr("fill","red");
18. Binding data
Bagaimana 'mengikat' data, kemudian di-'visual'-kan
var dataset =[10,30,50,70,90];
var svg = d3.select("body")
.append("svg")
.attr("width",200)
.attr("weight",200);
svg.selectAll("g")
.data(dataset)
.enter()
.append("ellipse")
.attr("cx",function(d){
return d;
})
.attr("cy",40)
.attr("rx",10)
.attr("ry",10)
.attr("fill","red");
Syntax untuk mengikat data:
.data(dataset).enter()
19. Power of data()
data() akan melakukan iterasi pada setiap nilai pada
dataset, lalu akan mengeksekusi method - function(d).
.data(dataset).enter().append(^circle ̄).attr(^r ̄,function(d)
{retrun d;});
Jika diberikan 10 data:
var dataset = [1,2,3,4,5,6,7,8,9,10];
Akan mengiterasi setiap data
Jika diberikan:
Akan diiterasi
sebanyak:
n
x
n
x
20. Dasar Transisi
Untuk melakukan transisi, dapat menggunakan method transition()
var svg = d3.select("body")
.append("svg")
.attr("width",500)
.attr("height",200);
var dot = svg.append("circle")
.attr("cx","100")
.attr("cy","100")
.attr("r",20)
.attr("fill","red");
var transition = dot.transition()
.attr("cx","200")
.duration(2000);
duration() - lama transisi
delay() - delay transisi