plotCareerResults = (parent, data)=>{
const blockHeight = 6;
const blockWidth = 3;
const stacked = data.results.reduce((acc, current)=>{
if(acc.accumulator[current.position]==undefined){
acc.accumulator[current.position] = 0;
}else{
acc.accumulator[current.position] += 1;
}
current.stackHeight = acc.accumulator[current.position];
acc.stacked.push(current)
return acc
}, {
stacked:[],
accumulator:{}
}).stacked;
const group = parent.append('g')
.attr('transform',`translate(${data.margin.left},${data.margin.top+7})`)
group.append('line')
.attr('x1', data.margin.left)
.attr('y1', data.mean*blockHeight)
.attr('x2', data.width - data.margin.right)
.attr('y2', data.mean*blockHeight)
.attr('stroke','rgb(0,0,0)')
group.append('line')
.attr('x1', data.margin.left)
.attr('y1', data.circuitStats.mean*blockHeight)
.attr('x2', data.width - data.margin.right)
.attr('y2', data.circuitStats.mean*blockHeight)
.attr('stroke', 'rgb(255,0,0)')
group.selectAll('rect')
.data(stacked)
.enter()
.append('rect')
.attr('x', d => d.stackHeight*(blockWidth+1))
.attr('y', d => d.position*(blockHeight +1))
.attr('width', blockWidth)
.attr('height', blockHeight)
.attr('fill', d => {
if(d.circuitId == data.circuit){ return 'rgb(255, 0, 0)'; }
return 'rgb(200, 200, 200)';
});
}