console.clear()
d3.select('html').selectAppend('div.tooltip')
d3.loadData('data.tsv', (err, res) => {
data = res[0]
var sel = d3.select('#graph').html('')
var c = d3.conventions({parentSel: sel, height: 460})
c.x.domain([-6, 6])
c.y.domain([0, .5])
var area = d3.area()
.x(d => c.x(d.x))
.y0(d => c.y(d.y))
.y1(c.height)
.curve(d3.curveBasis)
var pathSel = c.svg.append('defs')
.append('mask')
.at({id: 'blue-mask'})
.append('path')
.at({
d: area(data.filter(d => d.year == 1951)),
fill: '#fff'
})
var start = -6
var colors = [
{fill: '#085B84', end: -3.00},
{fill: '#73ACC6', end: -0.43},
{fill: '#E5E5E5', end: 0.43},
{fill: '#DB90BA', end: 3.00},
{fill: '#C92E92', end: 6.00},
]
colors.forEach(d => {
d.start = start
start = d.end
})
c.svg.appendMany(colors, 'rect')
.at({
fill: d => d.fill,
x: d => c.x(d.start),
width: d => c.x(d.end) - c.x(d.start),
height: c.height,
mask: 'url(#blue-mask)'
})
var yearSel = c.svg.append('text').text(1951)
.at({fontSize: 30, x: 600, y: 100})
var years = '1951 1983 1994 2005'.split(' ')
var curIndex = 0
if (window.histTimer) window.histTimer.stop()
window.histTimer = d3.interval(() => {
curIndex = ++curIndex % years.length
var curYear = years[curIndex]
pathSel.transition().duration(500)
.at({d: area(data.filter(d => d.year == curYear))})
var i = d3.interpolate(yearSel.text(), curYear)
yearSel.transition().duration(500)
.attrTween('year-text', () => {
return t => yearSel.text(Math.round(i(t)))
})
}, 1000)
})