Spaces:
Running
Running
window.makeAxii = function(){ | |
var stateScale = d3.scaleBand().domain(states).range(c.x.range()) | |
var stateAxis = c.svg.append('g.axis.state.init-hidden') | |
var bw = stateScale.bandwidth()/2 | |
stateAxis.appendMany('text', states) | |
.translate(d => [stateScale(d) + bw, c.height + 22]) | |
.text(d => d) | |
.at({ | |
textAnchor: 'middle', | |
}) | |
.st({fill: '#444'}) | |
stateAxis.appendMany('path', d3.range(ages.length + 1)) | |
.at({ | |
d: d => ['M', d*c.width/(ages.length), '0 V', c.height].join(' '), | |
stroke: '#aaa', | |
}) | |
stateAxis.append('text.bold').text('Home State') | |
.translate([c.width/2, c.height + 45]) | |
.at({textAnchor: 'middle'}) | |
var ageScale = d3.scaleBand().domain(ages.slice().reverse()).range(c.x.range()) | |
var ageAxis = c.svg.append('g.axis.age.init-hidden') | |
ageAxis.appendMany('text', ages) | |
.translate(d => [-30, ageScale(d) + bw]) | |
.text(d => d) | |
.at({dy: '.33em'}) | |
.st({fill: '#444'}) | |
ageAxis.appendMany('path', d3.range(ages.length + 1)) | |
.at({ | |
d: d => ['M 0', d*c.width/(ages.length), 'H', c.width].join(' '), | |
stroke: '#aaa', | |
}) | |
if (scale == 1){ | |
ageAxis | |
.append('g').translate([-43, c.height/2]) | |
.append('text.bold').text('Age') | |
.at({textAnchor: 'middle', transform: 'rotate(-90)'}) | |
} else { | |
ageAxis | |
.append('g').translate([-22, 14]) | |
.append('text.bold').text('Age') | |
.at({textAnchor: 'middle'}) | |
} | |
var seasonAxis = c.svg.append('g.axis.state.init-hidden').lower() | |
seasonAxis.appendMany('g', ages) | |
.translate(d => ageScale(d), 1) | |
.appendMany('path', d3.range(1, 4)) | |
.at({ | |
d: d => ['M 0', d*bw/4*2, 'H', c.width].join(' '), | |
stroke: '#ddd', | |
}) | |
var headAxis = c.svg.append('g.axis.state.init-hidden') | |
headAxis.appendMany('text.bold', ['Heads', 'Tails']) | |
.text(d => d) | |
.translate((d, i) => [i ? c.width/4*3 + 20 : c.width/4 - 20, 88]) | |
.at({textAnchor: 'middle'}) | |
var headCaptionAxis = c.svg.append('g.axis.state.init-hidden') | |
headCaptionAxis.appendMany('text', ['reports plagiarism', 'reports truth']) | |
.text(d => d) | |
.translate((d, i) => [i ? c.width/4*3 + 20 : c.width/4 - 20, 88 + 15]) | |
.at({textAnchor: 'middle'}) | |
.st({fill: '#444'}) | |
return {stateScale, stateAxis, headAxis, headCaptionAxis, ageScale, ageAxis, bw, seasonAxis} | |
} | |
if (window.init) window.init() |