14. Arrays & Conditionals
14
//data
["dog", "cat", "mouse" ].map( (d,i) => d == "mouse" ? "MONKEY" : d); //=> ["dog", "cat", "MONKEY"]
[2,4,6,8,10].map( (d,i) => d < 8 ? d * 3 : d); //=> [6,12,18,8,10]
[2,4,6,8,10].map( (d,i) => d / 2); //=> [1,2,3,4,5]
//index
["dog", "cat", "mouse"].map( (d,i) => i == 0 ? "pig" : d); //=> ["pig", "cat", "mouse"]
[2,4,6,8,10].map( (d,i) => i < 1 ? "snake" : d ); //=> ["snake", 4,6,8,10]
[2,4,6,8,10].map( (d,i) => i > 3 ? d * 2 : d); //=> [2,4,6,8,20]
15. File Types
15
an XMLHttpRequest.
a text file.
a JSON blob.
an HTML document fragment.
an XML document fragment.
a comma-separated values (CSV) file.
a tab-separated values (TSV) file.
17. 17
fatalities.tsv
Year Large Trucks
Pedestrians
1975 2757 4305
1976 3071 4893
script.js
//data is an array of objects!
d3.tsv("fatalities.tsv", function(error, data) {
data.filter( d => d["Pedestrians"] );
});
//returns ONLY the Pedestrian column
4305
4893
19. Select
19
d3.select('h1')
.style('transform' ,
'uppercase')
.style('font-size' , '24px')
.style('color' , 'green')
.style('margin-bottom',
'30px')
d3.selectAll('p')
.style('color' , 'red')
.style('padding-bottom' ,
'10px')
d3.select('body')
.append('div')
.text('Yo Yo!')
.style('background' ,
'black')
.style('color' , 'white')
HELLO
Lorem ipsum dolor sit amet, est percipit forensibus
argumentum et, id mel tale mundi aliquid.
Lorem ipsum dolor sit amet, est percipit forensibus
argumentum et, id mel tale mundi aliquid.
Lorem ipsum dolor sit amet, est percipit forensibus
argumentum et, id mel tale mundi aliquid.
Yo Yo!
20. Joining Data
3 Steps
20
What element we want?
.selectAll()
How many elements?
.data().enter()
Append element
.append()
21. Joins
21
//creates an array of 5 numbers
let our_data = d3.range(5);
//creates 5 <div> elements
d3.selectAll('div')
.data(our_data).enter
()
.append('div')
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
//creates an array of 1
let our_data = d3.range(1);
//creates 1 <g> elements
let groups = d3.selectAll('g')
.data(our_data).e
nter()
.append('g')
//creates 1 element each
groups.append('rect')
groups.append('circle')
groups.append('text')
<g>
<rect></rect>
<circle></circle>
<text></text>
</g>
//creates an array of 4 numbers
let our_data = d3.range(4);
//creates 5 <g> elements
let groups = d3.selectAll('g')
.data(our_data).e
nter()
.append('g')
//creates 5 <rect> elements
groups
.append('rect')
<g><rect></rect></g>
<g><rect></rect></g>
<g><rect></rect></g>
<g><rect></rect></g>