sidepanel = {
let values = [0,1000,2000,5000,7500,10000,50000,1000000];
let colors = d3.schemeYlOrRd[values.length + 1].slice(1,values.length + 2);
let myScale = d3.scaleLinear().domain(values).range(d3.range(8));
let myColor = d3.scaleQuantize().domain([0,8]).range(colors);
let legend = d3.select('#sidepanel').selectAll('div.legend')
.data(colors)
.enter()
.append('div')
.classed('legend', true)
.style('background', function(d){ return d })
.each(function(d,i) {
let div = document.createElement('div');
this.parentNode.insertBefore(div, this.nextSibling)
div.innerHTML = values[i] + (i == values.length - 1 ? "+" : '–' + values[i+1]);
})
return function(d) { return myColor( myScale(d) ) }
}