window.makeSel = function(){ function ttFmt(d){ var ttSel = d3.select('.tooltip').html('') var ageStr = d.age + ' year old' if (slides.curSlide.index == 4){ ageStr = ageStr + ' born in the ' + ['spring', 'summer', 'fall', 'winter'][d.season] } ttSel.append('div').html(` ${ageStr} from ${d.state} who ${d.plagerized ? 'plagiarized' : 'never plagiarized'} `) if (slides.curSlide.index < 6) return var isHeads = d.coinVals[estimates.active.index] < sliders.headsProb ttSel.append('div').html(` They flipped ${isHeads ? 'heads' : 'tails'} and said they had ${d.plagerized || isHeads ? 'plagiarized' : 'never plagiarized'} `) .st({marginTop: 10}) } var rectAt = {} var rs = (axii.bw - 10)*2 rectAt.ageState = {width: rs, height: rs, x: -rs/2, y: -rs/2} var uniqueBox = c.svg.appendMany('rect.unique.init-hidden', students.byAgeState.filter(d => d.length == 1)) .translate(d => d.pos) .at(rectAt.ageState) var rs = axii.bw/4 + 5.5 rectAt.ageStateSeason = {width: rs, height: rs, x: Math.round(-rs/2), y: 4} var uniqueSeasonBox = c.svg.appendMany( 'rect.unique.init-hidden', students.byAgeStateSeason.filter(d => d.length == 1 && d[0].group.ageState.length > 1)) .translate(d => d.pos) .at(rectAt.ageStateSeason) // number of uniquely id'd students // console.log(uniqueSeasonBox.size()) var studentGroup = c.svg.append('g') .at({width: 500, height: 500}) var student = studentGroup.appendMany('g.student', students.all) .call(d3.attachTooltip) .on('mouseover', ttFmt) .translate(d => d.isAdditionalStudent ? [0,0]: d.pos.grid) .classed('inactive', d => d.isAdditionalStudent) var rs = 16 var flipCircle = student.append('circle') .at({transform: 'scale(.1)'}) .at({r: 9, fill: '#fff'}) .at({stroke: '#b0b' }) var circle = student.append('circle').at({ r: 5, fill: d => d.plagerized ? '#f0f' : '#ccc', stroke: d => d.plagerized ? '#b0b' : '#aaa', strokeWidth: 1, }) addSwoop(c) return {student, studentGroup, circle, flipCircle, rectAt, uniqueBox, uniqueSeasonBox} } if (window.init) window.init()