xAxis = g => g
.attr('text-anchor', 'middle')
.call(g => g.selectAll('g')
.data([ 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'January', 'February', 'March' ])
.join('g')
.attr('transform', (d,i,arr) => `
rotate(${ i * 360/arr.length })
translate(${innerRadius},0)
`)
.call(g => g.append('line')
.attr('x1', -5)
.attr('x2', outerRadius - innerRadius + 10)
.style('stroke', '#aaa'))
.call(g => g.append('text')
.attr('transform', (d,i,arr) => ((i * 360/arr.length) % 360 > 180
? "rotate(90)translate(0,16)"
: "rotate(-90)translate(0,-9)"))
.style('font-family', 'sans-serif')
.style('font-size', 10)
.text(d => d)))